2013-09-23 13 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 하에서 생성하기 아니다 나는 수색했다. 이 문제에 대해 많이 알지만 내 문제를 해결하기위한 만족스러운 대답은 아닙니다. 나는 많은 애플 리케이션과 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

관련 문제