Bonjour,
Je vais essayer de m'expliquer clairement. Je développe une application Web. Je l'ai déployée mi décembre, j'ai eu quelques problèmes depuis, mais j'ai toujours réussi a les résoudre. Aujourd'hui je comprends pas.
Alors pour situer le contexte, j'utilise J2EE, Hibernate et Struts ... dans cette application. Je génère un .war avec ANT. Je déploie mon .war sur un serveur jakarta-tomcat-4.1.12.
Mon problème il y a 2 semaines, tous les liens de téléchargement ont tous disparu. C'est un systeme de gestion électronique de documents (GED) donc c'est vraiment gênant.
J'ai regarde dans les fichiers de logs et voila les lignes intéressantes que j'ai pu récupérer :
L'Action qui gère les download DownloadAction.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 2008-09-09 09:13:24 StandardManager[/New_Tdms] IOException while loading persisted sessions: java.io.StreamCorruptedException: invalid type code: 00 java.io.StreamCorruptedException: invalid type code: 00 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1642) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1357) at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:852) at org.apache.catalina.session.StandardManager.load(StandardManager.java:411) at org.apache.catalina.session.StandardManager.start(StandardManager.java:626) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3496) at org.apache.catalina.core.StandardHostDeployer.start(StandardHostDeployer.java:458) at org.apache.catalina.core.StandardHost.start(StandardHost.java:872) at org.apache.catalina.servlets.ManagerServlet.start(ManagerServlet.java:1014) at org.apache.catalina.servlets.HTMLManagerServlet.start(HTMLManagerServlet.java:379) at org.apache.catalina.servlets.HTMLManagerServlet.doGet(HTMLManagerServlet.java:149) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:527) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533) at java.lang.Thread.run(Thread.java:619) 2008-09-09 09:13:24 StandardManager[/New_Tdms] Exception loading sessions from persistent storage java.io.StreamCorruptedException: invalid type code: 00 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1642) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1357) at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:852) at org.apache.catalina.session.StandardManager.load(StandardManager.java:411) at org.apache.catalina.session.StandardManager.start(StandardManager.java:626) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3496) at org.apache.catalina.core.StandardHostDeployer.start(StandardHostDeployer.java:458) at org.apache.catalina.core.StandardHost.start(StandardHost.java:872) at org.apache.catalina.servlets.ManagerServlet.start(ManagerServlet.java:1014) at org.apache.catalina.servlets.HTMLManagerServlet.start(HTMLManagerServlet.java:379) at org.apache.catalina.servlets.HTMLManagerServlet.doGet(HTMLManagerServlet.java:149) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:527) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533) at java.lang.Thread.run(Thread.java:619)
Et voici une partie ou j'appelle l'action Download :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 package tdms.fileActions; import java.io.BufferedInputStream; import java.io.InputStream; import java.io.OutputStream; import java.lang.reflect.Method; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.upload.FormFile; /** * * @struts.action * path="/releaseReqFormDownload" * name="releaseReqFormBean" * type="tdms.fileActions.DownloadAction" * scope="session" * validate="false" * * @struts.action * path="/releaseAppr1FormDownload" * name="releaseAppr1FormBean" * type="tdms.fileActions.DownloadAction" * scope="session" * validate="false" * * @struts.action * path="/releaseAppr2FormDownload" * name="releaseAppr2FormBean" * type="tdms.fileActions.DownloadAction" * scope="session" * validate="false" * * @struts.action * path="/releaseAppr3FormDownload" * name="releaseAppr3FormBean" * type="tdms.fileActions.DownloadAction" * scope="session" * validate="false" * * @struts.action * path="/editDocFormDownload" * name="editDocFormBean" * type="tdms.fileActions.DownloadAction" * scope="session" * validate="false" * * @struts.action * path="/newPackFormDownload" * name="newPackFormBean" * type="tdms.fileActions.DownloadAction" * scope="session" * validate="false" */ public class DownloadAction extends Action { public ActionForward execute (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { int count; byte buf[] = new byte[4096]; /* Retrieval of the form object and its file attribute */ Class c = form.getClass(); String accessorName = "get" + request.getParameter("field"); Method getFile = c.getMethod(accessorName, (Class[])null); FormFile file = (FormFile)getFile.invoke(form, (Object[])null); /* Creation of input / output streams */ OutputStream os = response.getOutputStream(); InputStream is = new BufferedInputStream (file.getInputStream()); /* Set the file type, name and size for the client browser * the file is supposed to have an extension !! */ String fn = file.getFileName(); String ext = fn.substring(fn.lastIndexOf('.')+1); response.setContentType("multipart/" + ext); response.setHeader("Content-Disposition", "attachment; filename=\""+ fn + "\""); response.setContentLength((int)file.getFileSize()); os.flush(); /* Send binary content */ try { while ((count = is.read(buf)) > -1) os.write(buf, 0, count); } catch (Exception ex) { ex.printStackTrace(); } /* Everything OK */ is.close(); os.close(); return null; } }
Quand je déploie en local avec un serveur Jonas les liens sont présents.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <!-- Fields for file upload --> <tr> <td colspan="2" class="title">File attachment</td> </tr> <tr> <td>Actual doc source</td> <tr> <tr> <td colspan="2"> <p> <html:file property="srcFile" /> <input type="submit" value="Upload" onclick="document.getElementById('action').value='upload1'" /> <logic:notEmpty name="editDocFormBean" property="srcFile"> <html:link action="editDocFormDownload.do?field=SrcFile"> <bean:write name="editDocFormBean" property="srcFileName" /> </html:link> </logic:notEmpty> </p> </td> </tr> <tr> <td>Actual PDF IU</td> <tr> <tr> <td colspan="2"> <p> <html:file property="iuFile" /> <input type="submit" value="Upload" onclick="document.getElementById('action').value='upload2'" /> <logic:notEmpty name="editDocFormBean" property="iuFile"> <html:link action="editDocFormDownload.do?field=IuFile"> <bean:write name="editDocFormBean" property="iuFileName" /> </html:link> </logic:notEmpty> </p> </td> </tr> <tr> <td>Actual PDF NDA </td> <tr> <tr> <td colspan="2"> <p> <html:file property="ndaFile" /> <input type="submit" value="Upload" onclick="document.getElementById('action').value='upload3'" /> <logic:notEmpty name="editDocFormBean" property="ndaFile"> <html:link action="editDocFormDownload.do?field=NdaFile"> <bean:write name="editDocFormBean" property="ndaFileName" /> </html:link> </logic:notEmpty> </p> </td> </tr>
Quand je déploie sur le serveur je fais ça, ça marche plus:
Donc si vous pouviez m'aider je serai reconnaissante !!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Restart of Tomcat (duration : 10 minutes) a Shutdown of Tomcat / usr / local / jakarta - tomcat -4.1.12/ bin / shutdown .sh b Definition of the $JAVA HOME variable (we consider using the bash shell) export JAVA_HOME = / usr / local / j a v a 6 c Increase the amount of memory allocated to the JVM (prevent Out- OfMemoryError : PermGen Space errors) export JAVA_OPTS = -XX: MaxPermSize =256 M d Run rmiregistry (JNDI service) / usr / local / java6 / bin / rmiregistry & e Start Tomcat / usr / local / jakarta - tomcat -4.1.12/ bin / startup .sh Deployment of the application (duration : 10 minutes) a Copy of the tdms.war archive in /webdoc b List the already installed applications : http://server:8080/manager/list c TDMS installation : http://server:8080/manager/install?path=/tdms&war=file:/webdoc/tdms.war d Check good deployment : http://server:8080/manager/list e Use of TDMS : http://server:8080/tdms/
MerciJ'ai été longue mais plus il y a de détails mieux c'est non !
Partager