我收到此消息:SEVERE: Error loading WebappClassLoader
。
很多人都在网上发布了这个问题,我还没有找到解决这个问题的好方法。
我想要做的只是从JSP页面调用servlet(使用AJAX)。问题是我得到Internal server error
。有人有任何想法吗?
如果它有所作为,我正在使用eclipse和Tomcat6。
完整错误:
SEVERE: Error loading WebappClassLoader
context: /Shaot
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@f11404
controller.UserController
java.lang.ClassNotFoundException: controller.UserController
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
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:127)
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:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
12/07/2011 02:29:14 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet UserController
java.lang.ClassNotFoundException: controller.UserController
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
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:127)
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:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
当AJAX调用的url为/NameOfTheProject/UserController
答案 0 :(得分:0)
我认为您的问题是JVM对controller.UserController一无所知。无论出于何种原因,似乎类加载器尚未加载您尝试调用的控制器。
首先尝试通过浏览器调试servlet(即使您只是创建一个简单的HelloWorld Servlet以确保正确加载它以供使用。
查看Tomcat的类加载器文档,了解幕后发生的事情; Tomcat 6.0 class loader how to
Tomcat 5.5 class loader how to
另外,也许可以在servlet的init()方法中放置一个断点,看看是否在通过浏览器或通过AJAX访问它时实际调用它。
祝你好运。
答案 1 :(得分:0)
java.lang.ClassNotFoundException: controller.UserController
异常是告诉类路径中缺少类controller.UserController
。要解决这个问题,只需将所提到的消息放入类路径中。
在您的特定情况下,您需要确保在您的webapp的部署文件夹中有一个/WEB-INF/classes/controller/UserController.class
文件。
答案 2 :(得分:0)
以下是可能的解决方案
尝试清理项目并重新编译。
你如何调用servlet,我的意思是你可以发布调用servlet的代码
答案 3 :(得分:0)
问题出在web.xml文件中。那边的东西配置错了。 我的解决方案是删除所有与servlet有关的事情,然后手动将servlet添加到部署。
答案 4 :(得分:0)
问题在于web.xml如果您的应用程序支持jsf,并且同样您为faces servlet输入,那么jar可能会丢失,因此它会说找不到类。
此类问题始终与web.xml
相关联