0

私は、jetty 上で動作する 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

そのメソッドを削除し、アプリケーションを再構成して再実行しようとしたにもかかわらず、常にこのエラーが発生します。なにが問題ですか?どうすれば解決できますか?

4

1 に答える 1

0

1-これを書いている間、あなたは150を超えるリリースのjetty6を使用しています。jetty9 は現在...現在

2- ClassNotFoundException ではないので、クラスローダでそのクラスの複数のインスタンスを使用できるのではないかと思います。その結果、NoClassDefFound が発生することがよくあります。おそらく、Web アプリケーションに複数のバージョンがありますか? jetty.home/lib (おそらく lib/ext) の下にカップルがあるかどうかを確認してください。適切なコマンド ライン オプションを使用すると、通常は分離された webapp クラスローダーに公開される可能性があります。これは一般的に、WebAppContext で parentLoaderPriority を true に設定している場合に問題になります。

[編集] Maven プラグインを使用している可能性があります。その場合、異なる groupId:artifact:versions を持つ可能性のある依存関係または複数のバージョンが下に浮かんでいる可能性のある依存関係を介して、プラグインによってロードされているそのクラスの複数のインスタンスがないことを再度確認してください。それがプロジェクト構造である場合はターゲット (リリース後に更新して再コンパイルするとわかるように)

于 2013-06-17T11:15:16.167 に答える