Bonjour tout le monde,
Mon problème est le suivant :
J'appelle un bean depuis ma jsp :
Ma classe Starter ressemble à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <jsp:useBean class="util.Starter" id="db" scope="session"></jsp:useBean>
Je respecte la syntaxe getter/setter,
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 package util; import com.mysql.jdbc.Connection; /** * Servlet implementation class for Servlet: Starter * */ public class Starter { private MysqlDb db = null; public Connection con = null; public Starter() { super(); setDb(MysqlDb.getInstance()); setCon(getDb().getConnection()); } public MysqlDb getDb() { return db; } public Connection getCon() { return con; } public void setDb(MysqlDb db) { this.db = db; } public void setCon(Connection con) { this.con = con; } }
Ma classe Starter compilée se trouve dans WEB-INF/classes/util,
J'ai un constructeur sans paramètre dans ma classe Starter,
Mon fichier web.xml ressemble à ça :
Tout cela fonctionne parfaitement sous Eclipse en environnement local, en revanche j'obtient l'erreur suivante sur mon serveur :
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 <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> WebInterface</display-name> <servlet> <description> </description> <display-name> SessionLogger</display-name> <servlet-name>SessionLogger</servlet-name> <servlet-class> util.SessionLogger</servlet-class> </servlet> <servlet> <description> </description> <display-name> Starter</display-name> <servlet-name>Starter</servlet-name> <servlet-class> util.Starter</servlet-class> </servlet> <servlet-mapping> <servlet-name>SessionLogger</servlet-name> <url-pattern>/SessionLogger</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Starter</servlet-name> <url-pattern>/Starter</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
Dans tous les cas (environnement local et serveur) je tourne avec Tomcat 5.5.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 org.apache.jasper.JasperException: /VisioServer/login.jsp(8,0) The value for the useBean class attribute util.Starter is invalid.
Sur le forum de Sun, j'ai pu lire que certains utilisent le mot clé "type" à la place de "class" comme attribut de la balise usebean. Cette solution ne me convient pas car elle sous entends que la classe du bean a déjà été instanciée.
Je sais que c'est un problème récurrent qui a déjà été posté plusieurs fois, mais aucunes des solutions proposées ne semble résoudre mon problème...
Any idea ???
Partager