//myServlet.java代码package test;import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.ServletException;public class myServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
PrintWriter out = response.getWriter();
out.println("hello,my first servlet!");
out.close();
}
}//web.xml文件
<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5">  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>test.myServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>
</web-app>
错误提示:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Error allocating a servlet instance
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
java.lang.Thread.run(Thread.java:662)
root cause java.lang.NoClassDefFoundError: test/myServlet (wrong name: myServlet)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
java.lang.ClassLoader.defineClass(ClassLoader.java:615)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
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.Http11AprProcessor.process(Http11AprProcessor.java:864)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
java.lang.Thread.run(Thread.java:662)

解决方案 »

  1.   

    test/myServlet (wrong name: myServlet)  
    1.看看是否重新部署了,有没得这个class文件
    2.是不是类名,路径这些写对没得
      

  2.   

    你改了配置文件,得重启一下tomcat
      

  3.   

    test在src下面 你的配置就没有问题!你访问的没有问题吧?你直接访问这个servlet的路径有问题吗?
    你访问是 /myServlet 就可以了
      

  4.   

    谢谢各位!我重启了Tomcat以后,错误就消失了。然后再问下,我每次修改了我的myServlet.java文件重新编译后,是不是都得重启Tomcat?能不能直接刷新浏览器就看到效果。。
      

  5.   

    不能,最好还是要重启一下tomcat,因为每次编辑完xx.java就会对应生成xx.class 如果tomcat不重启,代码还是以前的class
      

  6.   

    设置成debug模式在server中有run server和debug server两个,用debug server就是修改servlet后就重载了。 
     
      

  7.   

    Eclipse+Tomcat调试修改代码不用重启容器配置方法 .
    百度上大片