A seguinte página de erro ocorre durante a execuçã de uma aplicação web no jboss:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Wrapper cannot find servlet class XXXServlet or a class it depends on
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:81)
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:177)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:619)
root cause
java.lang.ClassNotFoundException: XXXServlet
java.net.URLClassLoader$1.run(URLClassLoader.java:200)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:188)
java.lang.ClassLoader.loadClass(ClassLoader.java:307)
java.lang.ClassLoader.loadClass(ClassLoader.java:252)
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:81)
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:177)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:619)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.30 logs.
Apache Tomcat/5.0.30
Acho que tem algo haver com o descritor web.xml.
Conteúdo do web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>XXXServlet</servlet-name>
<servlet-class>XXXServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XXXServlet</servlet-name>
<url-pattern>/XXXServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>principal.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
...
</resource-ref>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>
E para garantir que o XXXServlet.class está no local correto, a seguir é exibida parte da saída do comando
jar -tf <folder-jboss_deploy>/.war
~$ jar -tf <folder-jboss_deploy>/xxx.war
...
META-INF/ejb-jar.xml
META-INF/jboss.xml
WEB-INF/classes/XXXServlet.class
WEB-INF/classes/com/jspsmart/upload/File.class
WEB-INF/classes/com/jspsmart/upload/File.class.hacked
WEB-INF/classes/com/jspsmart/upload/File.class.original
WEB-INF/classes/com/jspsmart/upload/Files.class
...
Alguém poderia me ajudar nesse impasse?
Desde já, obrigado!