我移动/重命名我的servlet所在的包,我收到了这个错误:
java.lang.ClassNotFoundException:fr.bordeaux.contactapp.Exceptions.AuthenticationException
我是Eclipse和Java的新手。我撤消重命名但错误仍然存在。 每个人都有我必须做的想法吗?
感谢您的帮助。
这里有痕迹:
Caused by: java.lang.NoClassDefFoundError: fr/bordeaux/contactapp/Exceptions/AuthenticationException
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2499)
at java.lang.Class.getDeclaredFields(Class.java:1811)
at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:256)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:132)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:334)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:774)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5053)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
Caused by: java.lang.ClassNotFoundException: fr.bordeaux.contactapp.Exceptions.AuthenticationException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
... 20 more
答案 0 :(得分:0)
我使用旧版本的Tomcat,所以这可能会有所帮助。
检查WEB-INF文件夹中名为web.xml的文件。我使用的是Netbeans,所以对我来说,它在src / main / webapp / WEB-INF下 - Eclipse可能会把它放在其他地方。
在该文件中,指定用于运行servlet或过滤器的类。您的重构可能没有修改web.xml文件的内容。
祝你好运!答案 1 :(得分:0)
您需要在错误堆栈跟踪中关注的是: 引起:java.lang.NoClassDefFoundError:fr / bordeaux / contactapp / Exceptions / AuthenticationException
您似乎仍在引用AuthenticationException类 在fr.bordeaux.contactapp.Exceptions包中 那个班级在那里不存在......
PS1:java区分大小写 Ps2:按照惯例,Java中的包是小写的
答案 2 :(得分:0)
在我的情况下,通过在url-pattern中添加“/”来修复错误,我忘了使用它。添加“/”后服务器启动成功。例如
<servlet-mapping>
<servlet-name>imp_servlet</servlet-name>
<url-pattern>/implement_servlet</url-pattern>
</servlet-mapping>