2009-04-19 10 views
3

私はJerseyをTomcatにデプロイしました。すべてcom.sun.jersey.spi.container.servlet.ServletContainerを使用すると完全に動作しますが、com.sun.jersey.spiに変更するとすぐに動作します。それが存在することができるものをパッケージ/配信Tomcat + Spring環境のJerseyはComponentProviderを見つけることができません。どうして?

Apr 19, 2009 5:07:35 PM org.apache.catalina.core.ApplicationContext log 
INFO: Marking servlet ServletAdaptor as unavailable 
Apr 19, 2009 5:07:35 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /myservice threw load() exception 
java.lang.ClassNotFoundException: com.sun.jersey.spi.service.ComponentProvider 

任意のアイデア:spring.container.servlet.SpringServlet(私は見つけることができるすべてのチュートリアルによる)、私は厄介な例外を取得しますか?私は何が欠けていますか?

まったく必要ないかもしれません。私は私のリソースクラスがロードされるときにそれが依存する残りのBeanでAutowiredと初期化されることを確認しようとしています。それは違うことができますか?

ありがとうございました。

答えて

1

com.sun.jersey.spi.service.ComponentProviderインターフェイスはジャージーコアJARの一部です。その例外が発生するのは奇妙です。

同じバージョンのジャージーライブラリを一緒に使用していることを確認してください(つまり、Jersey 1.0.1ライブラリを使用していますが、1.0と1.0.1を混在させることはありません)。

また、あなたがそうのようなあなたのweb.xmlにのContextLoaderListenerを持っていることを確認:

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
+0

私はすべての競合バージョンのJARファイルを削除し、唯一の1.0.3から再び追加しました - 例外が姿を消しました。同様に私のJSON機能は最小限に抑えられましたが、別の問題です。 – IgorM

+1

ジャージーでJSONサポートが最近変更されました。 JacksonがJSONをサポートし、必要なライブラリがあるように設定されていることを確認してください。 – deverton

+0

混乱に加えて、com/sun/jerseyのJersey Mavenリポジトリを調べると、1.0のSpring jarがありますが、一致するバージョンのcom/sun/jersey/contribsを見る必要があります。コア、サーバー、およびスプリング) – Damo

関連する問題