Bonjour,
Je suis en train de créer une application (via eclipse) avec un serveur tomcat 6.0.18 embarqué(catalina) et Java JDK 1.6
Le serveur me sert pour proposer une interface web pour la configuration de l'application.
J'arrive à faire fonctionner les servlets (je gère très bien les méthodes get et post)
Mon problème se pose avec un include (d'une classe à moi) que je fait
Code java : Sélectionner tout - Visualiser dans une fenêtre à part <%@ import package="XConfig.beans.XFile_config" %>
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 org.apache.jasper.JasperException: Impossible de charger la classe pour la JSP org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:620) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) XConfig.servlets.param.ServletXFile.doGet(ServletXFile.java:63) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) cause m�re java.lang.ClassNotFoundException: org.apache.jsp.param.xfile.liste_jsp java.net.URLClassLoader$1.run(URLClassLoader.java:200) java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(URLClassLoader.java:188) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66) org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:618) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) XConfig.servlets.param.ServletXFile.doGet(ServletXFile.java:63) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
l'arborescence de mon appli se présente sous cette forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 /workspace - lib/ //librairie de l'appli - XTrigger/ |- bin/ // fichiers compilés par eclipse |- src/ // sources java |- pages/ // dossier web-apps de tomcat, contient mes pages web et jsp |- web-inf/ //contient web.xml |- work/ // dossier de tomcat |- conf/ //fichiers de config de tomcat (servers.xml, tomcat-users.xml, etc) |- lib/ // librairies tomcat
mes packages/classes tomcats sont présenté sous cette forme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 XConfig |- ServeurWebEmbarque //lance le serveur web en mode embarqué XConfig.Servlets.param //contient mes servlets
voilà mon web.xml :
Code xml : 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 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <description> XConfig. </description> <display-name>Configuration de XTrigger</display-name> <servlet> <servlet-name>ServletParam</servlet-name> <servlet-class>XConfig.servlets.param.ServletParam</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletParam</servlet-name> <url-pattern>/param/</url-pattern> <url-pattern>/param</url-pattern> </servlet-mapping> <servlet> <servlet-name>ServletXFile</servlet-name> <servlet-class>XConfig.servlets.param.ServletXFile</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletXFile</servlet-name> <url-pattern>/param/XFile</url-pattern> <url-pattern>/param/XFile/</url-pattern> </servlet-mapping> <servlet> <servlet-name>ServletXShell</servlet-name> <servlet-class>XConfig.servlets.param.ServletXShell</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletXShell</servlet-name> <url-pattern>/param/XShell</url-pattern> <url-pattern>/param/XShell/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
code pour lancer le serveur tomcat embedded (embarqué)
ServeurWebEmbarque.java
Code java : 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 package XConfig; import org.apache.catalina.Context; import org.apache.catalina.Engine; import org.apache.catalina.Host; import org.apache.catalina.LifecycleException; import org.apache.catalina.connector.Connector; import org.apache.catalina.realm.MemoryRealm; import org.apache.catalina.startup.Embedded; public class ServeurWebEmbarque { private Embedded serveur; private Connector httpConnector; public ServeurWebEmbarque(int port){ System.out.println( "--> Démarrage du serveur web embarqué sur le port "+port); this.serveur = new Embedded(); MemoryRealm mem = new MemoryRealm(); this.serveur.setRealm(mem); Engine baseEngine = this.serveur.createEngine(); baseEngine.setName("engine"); baseEngine.setDefaultHost("host_xconfig"); Host baseHost = this.serveur.createHost("host_xconfig", "pages"); baseEngine.addChild(baseHost); Context rootContext = this.serveur.createContext("", "\\"); baseHost.addChild(rootContext); //On renseigne la servlet à utilisée (qui est definie dans WEB-INF/web.xml) rootContext.findServletMapping("ServletXConfig"); this.serveur.addEngine(baseEngine); this.httpConnector = this.serveur.createConnector((java.net.InetAddress) null, port, false); this.serveur.addConnector(this.httpConnector); try { this.serveur.start(); } catch (LifecycleException e) { e.printStackTrace(); } } public void setPort(int port) { httpConnector.setPort(port); } public void stop() { try { this.serveur.stop(); } catch (LifecycleException e) { e.printStackTrace(); } } }
J'ai essayé de mettre la classe includée dans le dossier web-inf/classes
mais rien n'y fait
Voilà, je pense avoir donné tout les informations nécéssaire, s'il en manque demander moi ^^
Partager