Salut a tous,
Je suis nouveau en programation de servlets e jsp, j'utilise eclipse 3.1.1 avec le plugin Sysdeo Eclipse Tomcat Launcher plugin 3.1 et le serveur c'est TomCat 5.5.12 Je suis en train de faire une petit aplication, c'est juste un formulaire d'envoi avec teste des valeurs introduites et retour des erreurs s'il y en a, mai il se fait que j'ai un petit probleme et je ne sais pas d'ou il vient.
Ce que le programme fait c'est le suivant, j'ai un formulaire formulaire1.personne.jsp une foi que je remplis les donnés je les envoie et c'est la servlet ServletPersonne1 qui traite le resultat et en function de ce resulta on afficheras la page reponse1.personne.jsp que afficheras si les donnes on bien été rentrees ou pas. Mais ce qui se passe c'est que quant j'essaye de compiler la servlet il me donne une quantité d'erreurs que les voici:
17/Jan/2006 20:54:48 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Portable Runtime which allows optimal performance in production environments was not found on the java.library.path: C:\Programas\Java\jdk1.5.0_02\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\Programas\Java\jdk1.5.0_02\bin;C:\Programas\Java\jdk1.5.0_02\bin;C:\Programas\Java\jdk1.5.0_02\bin;C:\WINDOWS\System32
17/Jan/2006 20:54:48 org.apache.coyote.http11.Http11BaseProtocol init
SEVERE: Error initializing endpoint
java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:297)
at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProtocol.java:137)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1016)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:762)
at org.apache.catalina.startup.Catalina.load(Catalina.java:488)
at org.apache.catalina.startup.Catalina.load(Catalina.java:508)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:247)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
17/Jan/2006 20:54:48 org.apache.catalina.startup.Catalina load
SEVERE: Catalina.start
LifecycleException: Protocol handler initialization failed: java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.catalina.connector.Connector.initialize(Connector.java:1018)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:580)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:762)
at org.apache.catalina.startup.Catalina.load(Catalina.java:488)
at org.apache.catalina.startup.Catalina.load(Catalina.java:508)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:247)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)
17/Jan/2006 20:54:48 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1093 ms
17/Jan/2006 20:54:48 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
17/Jan/2006 20:54:48 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.12
17/Jan/2006 20:54:48 org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
17/Jan/2006 20:54:49 org.apache.catalina.startup.ContextConfig applicationWebConfig
INFO: Missing application web.xml, using defaults only StandardEngine[Catalina].StandardHost[localhost].StandardContext[/exemple]
17/Jan/2006 20:54:49 org.apache.catalina.core.ApplicationContext log
INFO: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
17/Jan/2006 20:54:50 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
17/Jan/2006 20:54:50 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
17/Jan/2006 20:54:51 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
17/Jan/2006 20:54:51 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
17/Jan/2006 20:54:51 org.apache.coyote.http11.Http11BaseProtocol start
SEVERE: Error starting endpoint
java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:297)
at org.apache.tomcat.util.net.PoolTcpEndpoint.startEndpoint(PoolTcpEndpoint.java:312)
at org.apache.coyote.http11.Http11BaseProtocol.start(Http11BaseProtocol.java:149)
at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:95)
at org.apache.catalina.connector.Connector.start(Connector.java:1089)
at org.apache.catalina.core.StandardService.start(StandardService.java:459)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:680)
at org.apache.catalina.startup.Catalina.start(Catalina.java:536)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
17/Jan/2006 20:54:51 org.apache.catalina.startup.Catalina start
SEVERE: Catalina.start:
LifecycleException: Protocol handler start failed: java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.catalina.connector.Connector.start(Connector.java:1091)
at org.apache.catalina.core.StandardService.start(StandardService.java:459)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:680)
at org.apache.catalina.startup.Catalina.start(Catalina.java:536)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
17/Jan/2006 20:54:51 org.apache.catalina.startup.Catalina start
INFO: Server startup in 3407 ms
17/Jan/2006 20:54:51 org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:343)
at org.apache.catalina.startup.Catalina.await(Catalina.java:600)
at org.apache.catalina.startup.Catalina.start(Catalina.java:560)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Voici le code de ma servlet:
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 import java.io.IOException; import java.util.ArrayList; import javax.servlet.*; import javax.servlet.http.*; public class ServletPersonne1 extends HttpServlet { //Parametres d'instance String urlMain = null; String urlFormulaire = null; String urlReponse = null; String urlErreurs = null; ArrayList erreurs = new ArrayList(); //Init public void init(){ //on recupere les parametres d'initialisation de la servlet ServletConfig config = getServletConfig(); urlMain = config.getInitParameter("urlMain"); if(urlMain == null){ erreurs.add("Le parametre [urlMain] n'as pas été initialisé."); } urlFormulaire = config.getInitParameter("urlFormulaire"); if(urlFormulaire == null){ erreurs.add("Le parametre [urlFormulaire] n'as pas été initialisé"); } urlReponse = config.getInitParameter("urlReponse"); if(urlReponse == null){ erreurs.add("Le parametre [urlReponse] n'as pas été initialisé"); } urlErreurs = config.getInitParameter("urlErreurs"); } /* * @param request requete du client * @param response reponse a construire */ public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{ //on verifie comment s'est passé l'initialization de la servlet if(urlErreurs == null)throw new ServletException("Le parametre [urlErreurs] n'as pas été initialisé"); if(erreurs.size() != 0){ //on passe la main a la page d'erreurs request.setAttribute("erreurs",erreurs); getServletContext().getRequestDispatcher(urlErreurs).forward(request,response); //Fim return; } //On recupere les parametres String nom = request.getParameter("txtNom"); String age = request.getParameter("txtAge"); //Des parametres ? if((nom == null)||(age == null)){ //On renvie le formulaire request.setAttribute("nom",""); request.setAttribute("age",""); request.setAttribute("urlAction",urlMain); getServletContext().getRequestDispatcher(urlFormulaire).forward(request, response); return; } //Verification des parametres ArrayList erreursApp1 = new ArrayList(); nom = nom.trim(); if(nom.equals(""))erreursApp1.add("Le champ [nom] n'as pas été rempli"); if(! age.matches("^\\s*\\d+\\s*$")) erreursApp1.add("Le champ [age] est erroné"); if(erreursApp1.size()!=0){ //On renvoie la page d'erreurs request.setAttribute("erreurs",erreursApp1); getServletContext().getRequestDispatcher(urlErreurs).forward(request, response); return; } //Parametres Corrects - On envie la page reponse request.setAttribute("nom",nom); request.setAttribute("age",age); getServletContext().getRequestDispatcher(urlReponse).forward(request, response); return; } /* * @param request requete du client * @param response reponse a construire */ public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{ //On passe la main au get doGet(request, response); } }
Et voici le code de mon fichier web.xml
Quant j'essaie de faire un "Reload this context" j'obtien l'erreur suivente:
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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app SYSTEM "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>personne1</servlet-name> <servlet-class>ServletPersonne1</servlet-class> <init-param> <param-name>urlMain</param-name> <param-value>/personne/main1</param-value> </init-param> <init-param> <param-name>urlReponse</param-name> <param-value>/reponse1.personne.jsp</param-value> </init-param> <init-param> <param-name>urlErreurs</param-name> <param-value>/erreurs1.personne.jsp</param-value> </init-param> <init-param> <param-name>urlFormulaire</param-name> <param-value>/formulaire1.personne.jsp</param-value> </init-param> </servlet> <servlet> <servlet-name>Formulaire Personne</servlet-name> <servlet-class>ServletFormulaire</servlet-class> <init-param> <param-name>defaultNom</param-name> <param-value>Inconnu</param-value> </init-param> <init-param> <param-name>defaultAge</param-name> <param-value>Inconnu</param-value> </init-param> </servlet> <servlet> <servlet-name>Formulaire Personne 2</servlet-name> <servlet-class>ServletFormulaire2</servlet-class> <init-param> <param-name>defaultNom</param-name> <param-value>Inconnu2</param-value> </init-param> <init-param> <param-name>defaultAge</param-name> <param-value>Inconnu2</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Formulaire Personne</servlet-name> <url-pattern>/formulaire</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Formulaire Personne 2</servlet-name> <url-pattern>/formulaire2</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>personne1</servlet-name> <url-pattern>/main1</url-pattern> </servlet-mapping> </web-app>
Operating failed
The following url was used:
/reload?path=/persone
Check manager app settings (user and password)
See wrokspace /.metadat/.log file
Et voici ce que j'obtient dans le fichier .log
!ENTRY com.sysdeo.eclipse.tomcat 4 4 2006-01-17 20:03:00.904
!MESSAGE java.lang.Exception: The following url was used :
/reload?path=/persone
Check manager app settings (username and password)
at com.sysdeo.eclipse.tomcat.actions.RestartContextActionDelegate.doActionOn(RestartContextActionDelegate.java:40)
at com.sysdeo.eclipse.tomcat.actions.TomcatProjectAbstractActionDelegate.run(TomcatProjectAbstractActionDelegate.java:48)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:246)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:538)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
at org.eclipse.core.launcher.Main.run(Main.java:973)
at org.eclipse.core.launcher.Main.main(Main.java:948)
Je sais que c'est beaucoup de code et d'erreurs et que ça va peut etre prendre du temps mais si je n'arrive pas a trouver l'erreur je n'arriverais pas a poursuive et j'aimerias vraiment evoluer dans la programation de jsp et servlets.
Je vous remercie a tous ceux qui voudron bien vous pancher sur se probleme.
[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java
Partager