问题描述:
昨天下午开始复习javaweb时候 准备重温一遍LoginServlet 遇到了一个之前没遇到的问题
点击登陆按钮后 提示错误500
Myeclipse 错误信息如下:
严重: Allocate exception for servlet Login
java.lang.ClassNotFoundException: com.servlet.Login
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:520)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:501)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1050)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:779)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:133)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:789)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1437)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
问题已经解决 根源是class没有立刻生成 XML文件配置正确 但是class在servlet创建后没有生成
解决方法 在Myeclipse 界面的 projecet 选项里面的 Build Automatically 打上对勾即可
有这个com.servlet.Login类吗,要么配置文件的问题..要么就是这个类没有被编译成字节码文件,JVM加载不到的时候就会抛出这个异常
首先看一下你那个Login类在web.xml中配置了没有(或者使用注解的方式配置),其次看一下继承HttpServlet了没有。
没有加载到类,是不是你的项目引用的jar包没有加载到容器里面去。解决办法,把你的项目删掉重新编辑一次(注意别永久删除了)
这是因为少了相应的jar包,没有发现相应jar包中的类
没加载到类,缺少jar包
我之前也这样,后来是重新建了一个项目
没有找到对应的类,看web.xml配置文件能不能直接点击进去
web.xml没有配置servelet,servelet名称,路径要在里面配置的,百度一下就知道了
500的话,应该是服务端的问题,首先你要看一下服务器是否可以正常启动,如果可以的话,就是jar包的问题,如果不可以正常启动,就是servlet的配置问题,也就是web.xml的配置
Servlet好像有版本问题,不同的版本可能会导致出错的
很明显,服务器端问题(500),提示 com.servlet.Login这个类没有找到,看看自己的Servlet是怎么配置的是不是包路径有问题
需要修改没有找到类, web 应用需要修改web.xml 指定servlet 映射路径
心累,都试了一遍还是没有解决,jar包会有什么问题呢,大神们