com.xzg
下  有个 UploadServlet.java用到的配置文件:
web.xml
<servlet>
    <servlet-name>UploadServlet</servlet-name>
    <servlet-class>com.xzg.UploadServlet</servlet-class>
</servlet>  <servlet-mapping>
    <servlet-name>UploadServlet</servlet-name>
    <url-pattern>/servlet/UploadServlet</url-pattern>
  </servlet-mapping>在jsp文件
uploadFile.jsp中, 有语句
<form action="<%=request.getContextPath()%>/servlet/UploadServlet"
该语句,可以正常调用UploadServlet
我现在需要 ,把包名 改为:       java.com.xzg
我就:  1,修改了包名;   2,也相应的修改了 web.xml 中, <servlet-class>java.com.xzg.UploadServlet</servlet-class>
点击提交按钮,调用UploadServlet时报错:
java.lang.ClassNotFoundException: java.com.xzg.UploadServlet
请帮忙给看看,答对,马上送上50分,回答就给分

解决方案 »

  1.   

    1、修改web.xml 要重起服务
    2、最好编译一下,有时候eclipse自动编译没有编译把你的 bug code 全贴出来 看看
      

  2.   

    compile your project and restart server
      

  3.   

    action中直接使用url-pattern
    不用绝对路径
      

  4.   

    如果程序没有编译错误,删掉tomcat5\work\Catalina下的文件,重新部署,然后启动试试
      

  5.   

    2008-12-9 14:39:17 org.apache.catalina.core.AprLifecycleListener init
    信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\MyEclipse 6.0\bin;C:\Program Files\MyEclipse 6.0\myeclipse\eclipse\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_6.0.0.zmyeclipse60020070820\tomcat\bin
    2008-12-9 14:39:17 org.apache.coyote.http11.Http11Protocol init
    信息: Initializing Coyote HTTP/1.1 on http-8080
    2008-12-9 14:39:17 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 579 ms
    2008-12-9 14:39:17 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2008-12-9 14:39:17 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/6.0.13
    2008-12-9 14:39:18 org.apache.coyote.http11.Http11Protocol start
    信息: Starting Coyote HTTP/1.1 on http-8080
    2008-12-9 14:39:18 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2008-12-9 14:39:18 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/32  config=null
    2008-12-9 14:39:18 org.apache.catalina.startup.Catalina start
    信息: Server startup in 1539 ms
    2008-12-9 14:39:27 org.apache.catalina.core.ApplicationContext log
    信息: Marking servlet UploadServlet as unavailable
    2008-12-9 14:39:27 org.apache.catalina.core.ApplicationContext log
    严重: Error loading WebappClassLoader
      delegate: false
      repositories:
        /WEB-INF/classes/
    ----------> Parent Classloader:
    org.apache.catalina.loader.StandardClassLoader@ba6c83
     java.com.xzg.UploadServlet
    java.lang.ClassNotFoundException: java.com.xzg.UploadServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
    2008-12-9 14:39:27 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Allocate exception for servlet UploadServlet
    java.lang.ClassNotFoundException: java.com.xzg.UploadServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:806)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
      

  6.   

    把work目录删除了,并把以前编译的class文件删除了.然后重新编译,并重启server
      

  7.   

    如果是用cmd编译的话,必须用javac . -d my.java
      

  8.   

    把servlet所在的包改动了 ,,,要修改它的相应配置文件(web.xml)   请问  其他的地方还有要修改吗
      

  9.   

    java.com.xzg.UploadServlet重新编译没有,同时要保证编译后的类放到/WEB-INF/classes/java/com/xzg目录下
      

  10.   

    汗(::)   哪得问题呀 servlet 就是一个java类吧   修改包名,又修改了在web。xml 中的配置  还有什么地方需要修改呀?
      

  11.   

    就这些东西要修改的啊,删除work下的内容,重新编译。应该可以的。
      

  12.   

    你是直接rename改的包名吗看看改过包名后  包结构是否发生变化在tomcat的管理界面把这个项目的session杀掉 重新启动IE 再试试 一般都是拼细心的问题 楼主耐心一些 再找找看  
      

  13.   

    把包名 改为:      java.com.xzg   就错在这里啦
      

  14.   

    包名 我随意找了个
    test..xzg.aaa.bb.cc随意测试了好多组 ,都可以 
    就是 用 java.com.xzg  不行,,,,这是为什么,,,?
      

  15.   

    包名 为 test..xzg.aaa.bb.cc  正确
    包名 为 java.test..xzg.aaa.bb.cc  错误
    多次验证,,,以java.  作为包名 就会报错,
    报错信息:  java.lang.ClassNotFoundException: java.test.xzg.aaa.bb.cc.UploadServlet详细信息,我上面有贴
    是不是,,,sun公司的规定呀,,,?太奇怪了,,,这个问题我调试了一天啦 谁能 解释下呀
      

  16.   

    sun公司自己把用java开头命名包名给限制了