2013-09-23 4 views
1

Я пытаюсь использовать базовое приложение сервлета. Я создал динамический веб-проект и добавил HelloWorld.java в папку src и отредактировал web.xml, как показано ниже. Затем я запускаю проект на сервере, но я получаю ошибку следующим образом. Я проверил решение в Интернете, но не решил мою проблему. Любая помощь?Ошибка загрузки WebappClassLoader

HelloWorld.java

import java.io.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 

    public class HelloWorld extends HttpServlet{ 
     public void doGet(HttpServletRequest request, 
     HttpServletResponse response) 
     throws ServletException,IOException{ 
     response.setContentType("text/html"); 
     PrintWriter pw = response.getWriter(); 
     pw.println("<html>"); 
     pw.println("<head><title>Hello World</title></title>"); 
     pw.println("<body>"); 
     pw.println("<h1>Hello World</h1>"); 
     pw.println("</body></html>"); 
     } 
    } 

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> 
    <!--<!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> 
    <servlet> 
     <servlet-name>Hello</servlet-name> 
     <servlet-class>HelloWorld</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Hello</servlet-name> 
    <url-pattern>/HelloWorld</url-pattern> 
    </servlet-mapping> 
    </web-app> 

и ошибка,

Sep 23, 2013 2:38:37 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:testasu' did not find a matching property. 
Sep 23, 2013 2:38:37 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:HelloWorld' did not find a matching property. 
Sep 23, 2013 2:38:37 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/jdk1.6.0_21/jre/lib/i386/server:/opt/jdk1.6.0_21/jre/lib/i386:/opt/jdk1.6.0_21/jre/../lib/i386:/usr/lib/jvm/java-6-openjdk/jre/lib/i386/client:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/xulrunner-addons:/usr/lib/xulrunner-addons:/usr/java/packages/lib/i386:/lib:/usr/lib 
Sep 23, 2013 2:38:37 PM org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
Sep 23, 2013 2:38:37 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 694 ms 
Sep 23, 2013 2:38:38 PM org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
Sep 23, 2013 2:38:38 PM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.18 
Sep 23, 2013 2:38:38 PM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
Sep 23, 2013 2:38:38 PM org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
Sep 23, 2013 2:38:38 PM org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/24 config=null 
Sep 23, 2013 2:38:38 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 586 ms 
Sep 23, 2013 2:40:01 PM org.apache.catalina.core.ApplicationContext log 
INFO: Marking servlet Hello as unavailable 
Sep 23, 2013 2:40:01 PM org.apache.catalina.core.ApplicationContext log 
SEVERE: Error loading WebappClassLoader 
    delegate: false 
    repositories: 
    /WEB-INF/classes/ 
----------> Parent Classloader: 
[email protected] 
HelloWorld 
java.lang.ClassNotFoundException: HelloWorld 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1094) 
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:808) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    at java.lang.Thread.run(Thread.java:619) 
Sep 23, 2013 2:40:01 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Allocate exception for servlet Hello 
java.lang.ClassNotFoundException: HelloWorld 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1094) 
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:808) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
    at java.lang.Thread.run(Thread.java:619) 

Классы не получают генерируется под WEB-INF Я искал много об этой проблеме, но нет удовлетворительного ответа для решения моей проблемы. Я пытаюсь много приложений, используя sendlets и jsp и html, но bcoz этой проблемы никто не работает. Любая помощь?

ответ

5

Обновить проект после его очистки и попытаться развернуть его снова ..

2
<servlet-class>HelloWorld</servlet-class> 

Это неправильно.

Вы должны указать полное имя (пакет).

как

<servlet-class>com.some.something.HelloWorld</servlet-class> 

Docs

+0

То не в issue..as я попробовал много подобных приложений в прошлом 2 дни с именами пакетов, этот текущий пример работает на других машинах, но не на моей машине. – user2793926

+0

Не могли бы вы подтвердить, что погода работает или нет, если вы даете полное имя пакета? –

+0

Мой пакет по умолчанию. – user2793926