2015-12-06 132 views
0
錯誤實例化servlet類

我試圖教自己的servlet和Tomcat等我跟着一些在線教程,並嘗試使用Maven構建我的第一個servlet,然後我得到這個錯誤:HTTP狀態500 - 致DeploymentDescriptorLoadException

type Exception report 

message Error instantiating servlet class com.perficient.servlets.HelloWorld 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException: Error instantiating servlet class com.perficient.servlets.HelloWorld 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    java.lang.Thread.run(Thread.java:745) 
root cause 

java.lang.ClassNotFoundException: com.perficient.servlets.HelloWorld 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1858) 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1709) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    java.lang.Thread.run(Thread.java:745) 
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.64 logs. 

我在網上做了一些研究,但沒有答案解決了我的問題。我的項目樹是這個樣子: Project Tree

的問題說:

Description Resource Path Location Type 
CHKJ3000E: WAR Validation Failed: org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml FirstWebapp  Unknown Validation Message 

所以我覺得一定是有毛病的web.xml中,但我不熟悉此錯誤消息。這是我的web.xml:

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 

    <servlet> 
     <servlet-name>HelloWorld</servlet-name> 
     <servlet-class>com.perficient.servlets.HelloWorld</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>HelloWorld</servlet-name> 
     <url-pattern>/HelloWorld</url-pattern> 
    </servlet-mapping> 
</web-app> 

任何人都知道什麼是我的web.xml出了問題?非常感謝!

回答

0

ClassNotFoundException: com.perficient.servlets.HelloWorld

  1. Tomcat是無法找到你的HelloWorld類。請確保您添加com.perficient.servlets.HelloWorld在WEB-INF/classes中

  2. 更改映射:

    <servlet-mapping> 
         <servlet-name>HelloWorld</servlet-name> 
         <url-pattern>/servlet/HelloWorld</url-pattern> 
        </servlet-mapping> 
    
+0

太謝謝你了! –

相關問題