2

Tomcatで大きな問題が発生しました。

説明する前に、私がこのようなものを見るのは初めてです...

Hibernate、Spring 3.0、JerseyRESTFrameworkでJPAを使用してアプリケーションを構築しています。

Glassfishを使用すると、すべてが正常に機能しますが、同じアプリケーションをTomcatにデプロイすると、次のエラーコードが登録されました。

    GRAVE: Error deploying configuration descriptor java-zero.xml
java.lang.NoClassDefFoundError: com/sun/jersey/spi/container/servlet/ServletContainer
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2527)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1010)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4187)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4496)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:519)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
        ... 34 more

次に、tomcatはアプリケーションを再起動しますが、同じエラーが発生します。無限ループで。

ライブラリの競合のように見えますが、それを解決する方法については本当にわかりません...

どんな提案でも大歓迎です!

チャオ、ダビデ。

4

3 に答える 3

4
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer suggests that you either don't have the Jersey JAR file or you've put it in the wrong place.

前者の場合は、ここからダウンロードしてTomcatに追加してください。

後者の場合は、それとそのすべての依存関係をWEB-INF / lib、Tomcat5.xの場合はserver/ lib、Tomcat6.xの場合はlibのいずれかに配置します。(すべてではなく、1つだけです。)

Glassfishがバンドルされているため、Glassfishで動作します。Tomcatはそうではありません。

于 2010-06-03T23:49:29.210 に答える
2

フォルダからすべてのJerseyJARを削除し/WEB_INF/lib、プロジェクトを更新して、JerseyライブラリのすべてのJARをに再度貼り付けます/WEB_INF/lib。プロジェクトを更新し、サーバーを再度停止して、デプロイして実行します。

于 2011-11-15T11:28:47.670 に答える
1

jersey.jarまたはjsr311-api.jarのいずれかがWebアプリから欠落しているようです。それらがWEB-INF/libフォルダーにあることを確認できます。

于 2010-06-03T23:51:26.410 に答える