重命名包后java.lang.ClassNotFoundException:fr.bordeaux.contactapp.Exceptions.AuthenticationException

时间:2015-04-08 15:37:51

标签: eclipse tomcat servlets package classnotfoundexception

我移动/重命名我的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

Director

3 个答案:

答案 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>