2011-04-05 5 views
0

Je développe une servlet s'exécutant sur Tomcat 6 en utilisant Eclipse comme IDE.Tomcat: Classe non trouvée

Le chemin principal de l'application Web est "Calcolatrice" et le nom de l'identificateur de servlet "Calcolatrice" également.

Lorsque je tente d'exécuter une simple opération get sur la servlet l'exception suivante est throwed:

javax.servlet.ServletException: Wrapper cannot find servlet class as.unibo.Calcolatrice or a class it depends on 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
java.lang.Thread.run(Thread.java:680) 

root cause 

java.lang.ClassNotFoundException: as.unibo.Calcolatrice 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
java.lang.Thread.run(Thread.java:680) 

Ce que je ne comprends pas pourquoi le paquet où est le servlet est « as.unibo.polac.server "mais Tomcat le cherche dans un autre paquet" as.unibo ".

Ce qui pourrait être la raison de ce problème?

[EDIT]

Ceci est le contenu de mon fichier web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
    <display-name>Calcolatrice</display-name> 
    <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> 
    <servlet> 
    <description></description> 
    <display-name>Calcolatrice</display-name> 
    <servlet-name>Calcolatrice</servlet-name> 
    <servlet-class>as.unibo.Calcolatrice</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Calcolatrice</servlet-name> 
    <url-pattern>/Calcolatrice</url-pattern> 
    </servlet-mapping> 

</web-app> 

est-il exact?

+0

Que contient votre fichier web.xml? – Tommi

+0

Vérifiez votre fichier web.xml. Avez-vous des entrées correctes dedans? –

Répondre

3

Parce que votre servlet est dans le paquet de as.unibo.polac.server votre web.xml doit être:

.... 
    <servlet> 
    <description></description> 
    <display-name>Calcolatrice</display-name> 
    <servlet-name>Calcolatrice</servlet-name> 
    <servlet-class>as.unibo.polac.server.Calcolatrice</servlet-class> 
    </servlet> 

..... 

Le chemin de classe est incorrect dans votre web.xml. Mettez-le à jour