2011-01-27 15 views
1

Jerseyフレームワークを使用してWebサービスを開発するのは初めてです。私は、既存のプロジェクトのアプリケーションサーバーとしてWeblogic v 10を使用しており、単純なHelloWorldサンプルを使用して開始しようとしています。WeblogicでJerseyとRESTful Webサービスを使用する

残念ながら、実行時にcom.sun.jersey.spi.container.servlet.WebComponent.createResourceConfigのcom/sun/jersey/core/reflection/ReflectionHelperにjava.lang.NoClassDefFoundErrorが発生しました。複数のバージョンを使用して試しましたジャージー(.jarファイルバージョン1.1.4.1と1.1.5.1と1.3)の結果が同じです。私はJava 1.5を使ってビルドして実行しています

HelloWorldクラスを含む.jarファイルは、私のデプロイメントWEB-INF \ classesフォルダに適切に読み込まれます。 web.xmlファイルには、検出されたJerseyのサーブレットクラスの設定のみが含まれますが、WebComponentクラスを呼び出して初期化を実行し、そのモジュールがCreateResourceConfigを作成しようとするとエラーが受信されます。クラスパスがチェックされ、正しく表示されます。

洞察力があれば幸いです。

+0

jarを見て、com/sun/jersey/core/reflection/ReflectionHelpeが実際にどこにあるべきかを確認します。 –

+0

返事をありがとう。これを前もって指定しておくべきですが、.jarファイルは配備パスの\ libフォルダにあり、ReflectionHelperクラスを含む.jarファイルを直接WEB-INF \ classesフォルダに展開しようとしました。残念ながら、エラーは残ります。 – jfleming

答えて

2

ウェブアプリのクラスパスにcom/sun/jersey/core/reflection/ReflectionHelperの複数のバージョンがあります。

NoClassDefFoundErrorが

注意を引き起こすものだ:これはClassNotFoundExceptionが同じではありません。

クラスパスとすべてのライブラリを検索して、複数のReflectionHelperクラスが見つかった場所を確認できますか?

私はあなたがまだ持っている疑いがあるすべて -

私は複数のバージョンジャージー.jarファイルの (1.1.4.1と1.1.5.1 および1.3)

    を使用して試してみました
  • バージョンが横たわっています。 1つだけを保持し、分解されたクラスも削除します。
+0

応答いただきありがとうございます。私はバージョン1.1.5.1のみを使用してNoClassDefFoundErrorを通過しました。しかし、Jersyの.jarファイルを/ libフォルダに置くことに加えて、/ classesフォルダに展開された.jarファイルを保存していた場合にのみ機能しました。それは必要ではないようです。今、私は404 - 見つからない。サーバーはRequest-URIと一致するものを見つけることができません。サーバー上の詳細なログには、Jersey PackagesResourceConfigが初期化され、ルートリソースとプロバイダクラスが見つかったという情報メッセージが表示されます。私はそれが私の次のハードルだと思います。あなたはこれを前に見たことがありますか? – jfleming

+0

@jfleming:基本サーブレット呼び出しの404は、通常、ブラウザ上で試行された不正なURLです。つまり、com.sun.jersey.spi.container.servlet.ServletContainer'のweb.xmlサーブレットマッピングと一致しません。あなたがしようとしているURLは何ですか?ジャージサーブレットを '/*/ 'または' http:// localhost:port/ > ' – JoseK

+0

@jfleming:あなたは本当にそれをするべきではありません。時間があれば、新鮮なプロジェクトを試して、JarだけをWeb-inf/libの下に置いてください。この回答がうまくいけば、それを受け入れること - 左の大きな緑色のダニ - を感じてください。 – JoseK

関連する問題