Jasper Exception avec Tomcat Struts JSP

cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011 - 22 févr. 2005 à 10:54
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011 - 11 mars 2005 à 13:41
Bonjour,

Je développe une petite appli toute bete de test afin de me former à Struts sous WSAD.
J'utilise un serveur TOMCAT.
J'ai réalisé une page d'index (Index.jsp) qui contient une zone de saisie, et un bouton de
validation.
Sous WSAD, qd je passe de la source de Index.jsp à la prévisualisation (avec les onglets)
pas de pb, je vois bien mon mini formulaire.
Mais si après publication sur le serveur TOMCAT, je veux visualiser ma page Index.jsp
depuis le navigateur IE, ben je vois une erreur HTTP 500 JasperException que voici:
(C'est un peut gros mais peut être que ça peut vous aider).
Le serveur ne semble pas trouver le compilo java malgré que 'ai rajouté celui d'eclipse (JRE).


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: Unable to compile class for JSP
at org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:500)
at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:150)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:195)
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(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
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.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:2417)
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:171)
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:193)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
at java.lang.Thread.run(Unknown Source)




cause mère java.lang.ClassNotFoundException: org.apache.jsp.Index_jsp
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:209)
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131)
at org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:497)
at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:150)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:195)
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(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
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.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:2417)
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:171)
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:193)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
at java.lang.Thread.run(Unknown Source)

Auriez-vous une explication ou une solution à ce problème svp ??
merci bcp !!

Valoue

7 réponses

shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
22 févr. 2005 à 16:50
tu peux essayer de lancer le serveur de test WSAD pour voir si le comportement est identique.
0
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011
23 févr. 2005 à 10:17
Salut shaiulud

Tout d'abord, merci bcp pour ta réponse, c très gentil.
G essayé de faire ce que tu m'as dit: j'ai créé un serveur J2EE de test, et j'ai executé le projet sur le serveur
http://localhost:9080http://localhost:9080/MonProjet/Personne.jsp

(J'ai bien ajouté le projet au serveur)

J'ai maintenant une erreur :

Impossible d'afficher la page

HTTP 500 - Erreur interne de serveur
Internet Explorer
La page appelée est censée afficher un formulaire de saisie du nom et prénom d'une personne.

Saurais tu d'où pourrait venir le pb ?
Dans le fichier web.xml, j'ai mis:

<welcome-file-list>



<welcome-file>Personne.jsp
</welcome-file>



</welcome-file-list>

Ce serait-ce un pb de configuration de WSAD, du serveur ??....

Valoue
0
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011
23 févr. 2005 à 11:06
L'erreur que j'a maintenant en executant l'appli sur le serveur de test est:

Cannot retrieve mapping for action /Personne

J'ai:
un fichier JSP: Personne.jsp
un fichier héritant de Action: PersonneAction.java
un fichier beanform: PersonneForm.java

Mon fichier struts-configxml contient:
<form-bean name="PersonneForm" type="Beans.PersonneForm"/>

et aussi:

<forward name=
"success" path=
"/ok.jsp"/>


Le fichier web.xml contient:
<!-- Standard Action Servlet Mapping -->
<servlet>
<servlet-name>Personne
</servlet-name>
<display-name>Personne
</display-name>
<jsp-file>/Personne.jsp
</jsp-file>
</servlet>
<servlet>
<servlet-name>ok
</servlet-name>
<display-name>ok
</display-name>
<jsp-file>/ok.jsp
</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>action
</servlet-name>
*.do

</servlet-mapping>

<!-- The Usual Welcome File List -->
<servlet-mapping>
<servlet-name>Personne
</servlet-name>
/Personne

</servlet-mapping>
<servlet-mapping>
<servlet-name>ok
</servlet-name>
/ok

</servlet-mapping>
<welcome-file-list>
<welcome-file>Personne.jsp
</welcome-file>
</welcome-file-list>

Sauriez-vous où se trouve l'erreur de mapping ??
Merci encore.
Valoue
0
shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
23 févr. 2005 à 21:21
WEB.XML
<web-app id= "WebApp">
<display-name>myApp</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

config

WEB-INF/struts-config.xml



debug

2



detail

2



validate

true


<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
*.do
</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>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/datetime-1.0</taglib-uri>
<taglib-location>/WEB-INF/lib/taglibs-datetime.jar</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/string-1.0.1</taglib-uri>
<taglib-location>/WEB-INF/lib/taglibs-string.jar</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/utility</taglib-uri>
<taglib-location>/WEB-INF/lib/utility.jar</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/mailer-1.1</taglib-uri>
<taglib-location>/WEB-INF/lib/taglibs-mailer.jar</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/application-1.0</taglib-uri>
<taglib-location>/WEB-INF/lib/taglibs-application.jar</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/page-1.0</taglib-uri>
<taglib-location>/WEB-INF/lib/taglibs-page.jar</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/request-1.0</taglib-uri>
<taglib-location>/WEB-INF/lib/taglibs-request.jar</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/response-1.0</taglib-uri>
<taglib-location>/WEB-INF/lib/taglibs-response.jar</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/session-1.0</taglib-uri>
<taglib-location>/WEB-INF/lib/taglibs-session.jar</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://jakarta.apache.org/taglibs/i18n-1.0</taglib-uri>
<taglib-location>/WEB-INF/lib/i18n.jar</taglib-location>
</taglib>
</web-app>

STRUTS-CONFIG.XML
<struts-config>
<form-beans>
<form-bean name
=
"PersonneForm"
type
=
"Beans.PersonneForm"
/>

</form-beans>

<action path
=
"/PersonneAction"
type
=
"Beans.PersonneAction"
name
=
"PersonneForm"
input
=
"/Personne.jsp"
scope
=
"request"
>
<
forward
name
=
"success"
path
=
"/Personne.jsp"
/>

</
action
>

</struts-config>

ta classe Beans.PersonneAction doit avoir la forme:


public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionErrors errors = new ActionErrors();
ActionForward forward = new ActionForward();

try {
// ton code

} catch (Exception e) {
errors.add("name", new ActionError("id"));
}
if (!errors.isEmpty()) {
saveErrors(request, errors);
forward = mapping.findForward("error");
} else {
forward = mapping.findForward("success");
}

return (forward);
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shaiulud Messages postés 404 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 juillet 2014 22
23 févr. 2005 à 21:28
Pour compdre l'erreur que tu avais dans ton web.xml, il faut savoir que lorsque tu utlises struts, c'est struts qui implémente les servlets et que toutes celles que tu vas coder (tes Action). Tes actions implémente org.apache.struts.action.Action et sont donc, par héritage, des servlets.

La servlets Struts est org.apache.struts.action.ActionServlet et tu retrouve dans ton web.xml

<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
0
Pschh Messages postés 6 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 1 juin 2012
11 mars 2005 à 11:55
Si tu utilises une version anterieur à Tomcat 5.5, celui-ci doit être "branché" sur un jdk (de preférence >= 1.4.2_02) et non un jre pour pouvoir compiler les jsp.

Ensuite, afin de ne pas trop perturber le web server et sa configuration standard, il me semble préferrable de garder un index.jsp comme "welcome-file", dans lequel il suffit de faire un sendRedirect vers ton Personne.jsp

Mais, entre nous, les beans c'est le bin'z.
0
cs_valoue Messages postés 72 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 13 mai 2011
11 mars 2005 à 13:41
Merci bcp pour vos réponse. En effet, je me suis rendue compte qu'en faisant ce que tu disais Pschh que ça fonctionnait mieux. J'avais pu lire aussi sur différents forums que la question du JRE/JDK était importante.

Merci en tout cas pour toutes ces infos à tout le monde. A+.

Valoue
0
Rejoignez-nous