2011-04-13 6 views
2

간단한 서블릿을 만들었습니다.Tomcat 서블릿 ClassNotFoundException

package servlets; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 
import java.io.PrintWriter; 

public class testServlet extends HttpServlet { 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     PrintWriter out = response.getWriter(); 
     out.print("TEST"); 
     out.close(); 
    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    } 
} 

web.xml을 구성

<servlet> 
     <servlet-name>testServlet</servlet-name> 
     <servlet-class>servlets.testServlet</servlet-class> 
     <load-on-startup>3</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>testServlet</servlet-name> 
     <url-pattern>/test</url-pattern> 
    </servlet-mapping> 

시작 로그

cmd /c ""D:\Program Files\Java\jdk1.6.0_24\bin\java" -Dcatalina.base=C:\Users\Administrator\.IntelliJIdea10\system\tomcat\_WebApplication "-Dcatalina.home=D:\Program Files\Apache Software Foundation\Tomcat 7.0" "-Djava.io.tmpdir=D:\Program Files\Apache Software Foundation\Tomcat 7.0\temp" -cp "D:\Program Files\Apache Software Foundation\Tomcat 7.0\bin\bootstrap.jar;D:\Program Files\Apache Software Foundation\Tomcat 7.0\bin\tomcat-juli.jar" org.apache.catalina.startup.Bootstrap start" 
13 квіт 2011 23:35:47 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: D:\Program Files\Java\jdk1.6.0_24\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:\Program Files\JetBrains\IntelliJ IDEA 10.0.2\bin\..\.\bin;C:\Program Files\Haskell\bin;D:\Program Files\Haskell Platform\2011.2.0.0\lib\extralibs\bin;D:\Program Files\Haskell Platform\2011.2.0.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\bin\;C:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;D:\Program Files\TortoiseSVN\bin;D:\Program Files\Microsoft Network Monitor 3\;D:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Users\Administrator\AppData\Roaming\cabal\bin;d:\program files\jetbrains\intellij idea 10.0.2\jre\jre\bin 
13 квіт 2011 23:35:48 org.apache.coyote.AbstractProtocolHandler init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
13 квіт 2011 23:35:48 org.apache.coyote.AbstractProtocolHandler init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
13 квіт 2011 23:35:48 org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 565 ms 
13 квіт 2011 23:35:48 org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
13 квіт 2011 23:35:48 org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12 
13 квіт 2011 23:35:48 org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor ROOT.xml from C:\Users\Administrator\.IntelliJIdea10\system\tomcat\_WebApplication\conf\Catalina\localhost 
13 квіт 2011 23:35:48 org.apache.catalina.core.ApplicationContext log 
INFO: Marking servlet testServlet as unavailable 
13 квіт 2011 23:35:48 org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet threw load() exception 
java.lang.**ClassNotFoundException: servlets.testServlet** 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1062) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4935) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5262) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5257) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

왜 실수가?

+0

서블릿이 클래스 경로에 있습니까? –

답변

6

는이 파일이 있어야합니다 :

의 webapps/WEB-INF/클래스/서블릿/대신 낙타 케이스의 파스칼 경우와 클래스의 이름을하시기 바랍니다 말했다 testServlet.class

- TestServlet

+0

IntelliJ IDEA를 사용합니다. 나쁘게 배포를 구성했습니다. 화면을 참조하십시오. ! – BILL

+0

내 유물 설정 [유물 설정] [1] [1] : http://i.imgur.com/kCRcO.png – BILL

+0

@BILL과 같은 서블릿의 모습을 어떻게하는지? – Bozho

0
  1. 기존 서블릿을 만들거나 편집 할 때마다 .war 파일을 다시 WebApps 폴더로 내 보내야합니다.
  2. 생성 된 서블릿 클래스가/WEB-INF/CLASSES 아래에있을 필요는 없지만 패키지 아래에 만들어야합니다.
  3. web.xml 파일의 xxxx.jsp에서이 servlet 클래스를 사용하는 .jsp 파일이 참조되는지 확인하십시오.
관련 문제