Java Jetty在编辑项目后给出一个错误

Java Jetty在编辑项目后给出一个错误,java,jetty,noclassdeffounderror,Java,Jetty,Noclassdeffounderror,我正在开发我的web应用程序,它运行在jetty上,我没有任何问题;但是添加了一个POST web服务,我在运行项目时遇到了以下错误: 013-06-17 12:08:19.398:INFO::jetty-6.1.26 2013-06-17 12:08:19.437:INFO::Extract /Users/carlo/Projects/datalift/wrapper/dist/DataLift.app/Contents/Resources/webapps/openrdf-sesame

我正在开发我的web应用程序,它运行在jetty上,我没有任何问题;但是添加了一个POST web服务,我在运行项目时遇到了以下错误:

    013-06-17 12:08:19.398:INFO::jetty-6.1.26
2013-06-17 12:08:19.437:INFO::Extract /Users/carlo/Projects/datalift/wrapper/dist/DataLift.app/Contents/Resources/webapps/openrdf-sesame.war to /Users/carlo/Library/Caches/DataLift/webapps/openrdf-sesame/webapp
2013-06-17 12:08:20.101:INFO:/openrdf-sesame:Initializing Spring FrameworkServlet 'openrdf-http-server'
2013-06-17 12:08:20.678:INFO::Extract /Users/carlo/Projects/datalift/wrapper/dist/DataLift.app/Contents/Resources/webapps/datalift.war to /Users/carlo/Library/Caches/DataLift/webapps/datalift/webapp
2013-06-17 12:08:20.706:WARN::failed org.mortbay.jetty.webapp.WebAppContext@6e7616ad{/datalift,/Users/carlo/Projects/datalift/wrapper/dist/DataLift.app/Contents/Resources/webapps/datalift.war}: java.lang.NoClassDefFoundError: org/datalift/fwk/log/web/LogServletContextListener
2013-06-17 12:08:20.707:WARN::failed HandlerCollection@acaf083: java.lang.NoClassDefFoundError: org/datalift/fwk/log/web/LogServletContextListener
2013-06-17 12:08:20.707:WARN::Error starting handlers
java.lang.NoClassDefFoundError: org/datalift/fwk/log/web/LogServletContextListener
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:392)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363)
    at org.mortbay.jetty.handler.ContextHandler.loadClass(ContextHandler.java:1102)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.initListener(WebXmlConfiguration.java:630)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.initWebXmlElement(WebXmlConfiguration.java:368)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.initialize(WebXmlConfiguration.java:289)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.configure(WebXmlConfiguration.java:222)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.configureWebApp(WebXmlConfiguration.java:180)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1279)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.datalift.wrapper.Wrapper.main(Wrapper.java:320)
2013-06-17 12:08:20.712:INFO::Started SocketConnector@localhost:9091

尽管我删除了该方法,并尝试重新配置和重新运行应用程序,但我始终会遇到此错误。怎么了?我怎样才能解决它呢?

1-我写这篇文章时,您使用的jetty6版本已经超过150个。jetty9目前是……最新的

2-由于它不是ClassNotFoundException,我想知道在classloader中是否有该类的多个实例可用,这通常会导致NoClassDefFound。也许你的webapp中有多个版本?检查jetty.home/lib(可能是lib/ext)下是否有一些选项,如果有正确的命令行选项,则可以将它们公开给通常隔离的webapp类加载器。当您在WebAppContext上的parentLoaderPriority也为true时,这通常是一个问题,您应该对此进行处理

[编辑]您可能正在使用maven插件,在这种情况下,再次确保插件不会加载该类的多个实例,或者通过可能具有不同groupId:artifact:versions的依赖项,或者在目标下浮动多个版本(如果这是您的项目结构)(在发布后进行更新和重新编译时可以看到)