OVH Cloud OVH Cloud

[tomcat] cannot resolve symbol

10 réponses
Avatar
yvon.thoraval
pour un jsp, j'ai créé une classe UserData que j'ai mise dans le
répertoire JAVA_HOME de Tomcat : /Library/Java/Home puisque Tomcat me
dit au démarrage :

iB:/usr/local/jakarta-tomcat-4.1.24/webapps/ROOT/JSP/Session>
/usr/local/jakarta-tomcat-4.1.24/bin/startup.sh
Using CATALINA_BASE: /usr/local/jakarta-tomcat-4.1.24
Using CATALINA_HOME: /usr/local/jakarta-tomcat-4.1.24
Using CATALINA_TMPDIR: /usr/local/jakarta-tomcat-4.1.24/temp
Using JAVA_HOME: /Library/Java/Home


si je fais un shutdown.sh suivi d'un startup.sh de Tomcat, j'ai tout de
même le message d'errreur suivant :

cannot resolve symbol : class UserData
[javac] location: class org.apache.jsp.SaveEmail_jsp
[javac] UserData user = null;

la ligne de SaveEmail.jsp étant :

<jsp:useBean id="user" class="UserData" scope="session"/>

NB : j'ai bien éteint et redémarré tomcat après l'ajout de cette classe
mais pas Apache...

--
Yvon Thoraval

10 réponses

Avatar
mathias.news+spam
Yvon Thoraval wrote:

pour un jsp, j'ai créé une classe UserData que j'ai mise dans le
répertoire JAVA_HOME de Tomcat : /Library/Java/Home puisque Tomcat me
dit au démarrage :

iB:/usr/local/jakarta-tomcat-4.1.24/webapps/ROOT/JSP/Session>
/usr/local/jakarta-tomcat-4.1.24/bin/startup.sh
Using CATALINA_BASE: /usr/local/jakarta-tomcat-4.1.24
Using CATALINA_HOME: /usr/local/jakarta-tomcat-4.1.24
Using CATALINA_TMPDIR: /usr/local/jakarta-tomcat-4.1.24/temp
Using JAVA_HOME: /Library/Java/Home




tu devrais plutôt mettre ta classe dans tomcat-4.1.24/shared/classes

regaarde la doc sur le class loader
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html

Avatar
yvon.thoraval
Mathias Terreaux <mathias.news+ wrote:


tu devrais plutôt mettre ta classe dans tomcat-4.1.24/shared/classes



je viens de le faire, après avoir arrété tomcat puis apache

re démarrer les 2 ...

sans succes, même erreur
regaarde la doc sur le class loader
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html


oui, je vais alors voir de ce côté là, merci !

le code de ma page où l'erreur arrive :

<jsp:useBean id="user" class="UserData" scope="session"/>
<jsp:setProperty name="user" property="*"/>
<HTML>
<BODY>
<A HREF="NextPageEmail.jsp">Continue</A>
</BODY>
</HTML>


et celui de UserData :

public class UserData {
String username;
String email;
int age;

public void setUsername( String value )
{
username = value;
}

public void setEmail( String value )
{
email = value;
}

public void setAge( int value )
{
age = value;
}

public String getUsername() { return username; }

public String getEmail() { return email; }

public int getAge() { return age; }
}


j'ai étonné qu'il n'y ait rien avant le public class UserData ...
--
Yvon Thoraval

Avatar
mathias.news+spam
Yvon Thoraval wrote:

Mathias Terreaux <mathias.news+ wrote:


tu devrais plutôt mettre ta classe dans tomcat-4.1.24/shared/classes



je viens de le faire, après avoir arrété tomcat puis apache

re démarrer les 2 ...

sans succes, même erreur
regaarde la doc sur le class loader
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html


oui, je vais alors voir de ce côté là, merci !



après test, je m'aperçoit il faut mettre à ta classe un package :


tu mets ta classe dans shared/classes/test
et dans ton fichier .java
package test;
class UserData
....


et dans la jsp
<%@ page language="java" import="test.*"%>
<jsp:useBean id="user" class="test.UserData" scope="session"/>
<jsp:setProperty name="user" property="*"/>
<HTML>
<BODY>
<A HREF="NextPageEmail.jsp">Continue</A>
</BODY>
</HTML>

j'ai pas réeussi sans le package.


Avatar
yvon.thoraval
Mathias Terreaux <mathias.news+ wrote:


après test, je m'aperçoit il faut mettre à ta classe un package :


tu mets ta classe dans shared/classes/test
et dans ton fichier .java
package test;
class UserData
....


et dans la jsp
<%@ page language="java" import="test.*"%>
<jsp:useBean id="user" class="test.UserData" scope="session"/>
<jsp:setProperty name="user" property="*"/>
<HTML>
<BODY>
<A HREF="NextPageEmail.jsp">Continue</A>
</BODY>
</HTML>

j'ai pas réeussi sans le package.


ca marche nettement mieux mais avec une exception tjs ds UserData, mais
là déjà ça prouve que la classe a été chargée...

--
Yvon Thoraval

Avatar
mathias.news+spam
Yvon Thoraval wrote:


ca marche nettement mieux mais avec une exception tjs ds UserData, mais
là déjà ça prouve que la classe a été chargée...


que dis elle ?

Avatar
yvon.thoraval
Mathias Terreaux <mathias.news+ wrote:

ca marche nettement mieux mais avec une exception tjs ds UserData, mais
là déjà ça prouve que la classe a été chargée...


que dis elle ?


oh, là, là, c'est plutôt bavard !

type Rapport d''exception

message

description Le serveur a recontrer une erreur interne () qui l'a empèché
de satisfaire la requête.

exception
org.apache.jasper.JasperException: UserData
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:254)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:256)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:241
5)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
lve.java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
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.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
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:59
4)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:392)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:56
5)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:619)
at java.lang.Thread.run(Thread.java:554)

cause mère
javax.servlet.ServletException: UserData
at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContex
tImpl.java:536)
at
org.apache.jsp.SaveEmail_jsp._jspService(SaveEmail_jsp.java:70)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:210)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:256)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:241
5)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
lve.java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
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.i
nvokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
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:59
4)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:392)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:56
5)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:619)
at java.lang.Thread.run(Thread.java:554)
--
Yvon Thoraval


Avatar
mathias.news+spam
Yvon Thoraval wrote:

at
org.apache.jsp.SaveEmail_jsp._jspService(SaveEmail_jsp.java:70)



as tu mis le package dans la déclaration :
<jsp:useBean id="user" class="test.UserData" scope="session"/>
^^^^^^

pour info :
SaveEmail_jsp.java:70
le fichier SaveEmail_jsp.java est la servlet correspondant à ta jsp,
c'est généré par tomcat et se trouve dans
work/Standalone/localhost/toncontext

avec toncontext qui vaut _ pour le ROOT par example.

Avatar
yvon.thoraval
Mathias Terreaux <mathias.news+ wrote:

as tu mis le package dans la déclaration :
<jsp:useBean id="user" class="test.UserData" scope="session"/>


ben non °;-)

merci encore !

je vais regarder côté Tomcat si ya pas un tuto spécifique.

tines au fait il y a un exemple dans Tomcat qui ne "marche" pas.
c'est le "number guess".
j'ai l'impression que l'ordi a en mémoire un nombre décimal, quand on
cherche un nombre entier...

par ex, en ce moment si je lui donne 78 il me dit :
try higher
79 -> try lower ... ça boucle là ;)
--
Yvon Thoraval

Avatar
mathias.news+spam
Yvon Thoraval wrote:

je vais regarder côté Tomcat si ya pas un tuto spécifique.

tines au fait il y a un exemple dans Tomcat qui ne "marche" pas.
c'est le "number guess".
j'ai l'impression que l'ordi a en mémoire un nombre décimal, quand on
cherche un nombre entier...

par ex, en ce moment si je lui donne 78 il me dit :
try higher
79 -> try lower ... ça boucle là ;)
-



bizarre :-)

ça marche chez moi.
j'ai regardé le souce, c'est un int pourtant

Avatar
yvon.thoraval
Mathias Terreaux <mathias.news+ wrote:


bizarre :-)

ça marche chez moi.
j'ai regardé le souce, c'est un int pourtant


ben m&@de alors !

qq'1 m'a dit un jour sur fcsm que je ferais un bon bêta testeur because
je tombe tjs sur les buggs que personne n'a eu...
--
Yvon Thoraval