web-dev-qa-db-ja.com

Websphere 8でのJAX-RS Jersey 2.10サポート

Websphere 8でJersey 2.10を使用しようとしていますが、JAX-RS 1.1(デフォルトのウィンク)の実装であるアプリケーションを参照しようとしています。IBMプロパティを設定してJAX-RSのデフォルトを無効にしたにもかかわらず、以下のエラーが発生します。

原因:Java.lang.NoSuchMethodError:javax/ws/rs/core/Application.getProperties()Ljava/util/Map; at org.glassfish.jersey.server.ApplicationHandler。(ApplicationHandler.Java:287) org.glassfish.jersey.servlet.WebComponent。(WebComponent.Java:311)

私はPARENT_LASTにクラス読み込みポリシーを作成するという投稿を読みました。そのオプションの変更はWASコンソールで無効になっていたため、(WASの公開設定-サーバー上のリソースでサーバーを実行する)を使用しようとすると、サーバーがクラッシュしました。

お知らせ下さい。ありがとう。

22
jerry

次の手順を実行する必要があります。

JVMプロパティ_com.ibm.websphere.jaxrs.server.DisableIBMJAXRSEngine=true_を介してJAX-RSに組み込まれたものを無効にする説明を参照してください here .
このプロパティは、Web管理コンソールの_Servers > WebSphere Application Servers > yourServerName_で設定できます。次に、_Server Infrastructure_セクション_Java and Process Management > Process definition > Java Virtual Machine > Custom properties_で。

コンソールで_Environment > Shared Libraries_を使用して、すべてのJAX-RS 2.10ライブラリを使用してisolated共有ライブラリを作成します。

ライブラリを作成するときに、_Use an isolated class loader for this shared library_ Class Loadingオプションをチェックすることにより、分離された共有ライブラリが作成されます。

_Applications > appName > Shared library references_を介して、インストール中または後で、この共有ライブラリをアプリケーションにマップします。

アプリケーションサーバーを再起動します。 SystemOut.logに、JAX-RSクラスを初期化するメッセージが表示されます。

_[7/12/14 16:10:36:470 CEST] 0000004a JerseyServlet I   Registering the Jersey servlet application, named javax.ws.rs.core.Application, with the following root resource and provider classes: [class jax.Hello, class org.glassfish.jersey.server.wadl.internal.WadlResource]
[7/12/14 16:10:36:688 CEST] 0000004a ApplicationHa I   Initiating Jersey application, version Jersey: 2.10.1 2014-06-30 13:53:32...
_

[〜#〜] update [〜#〜]

WAR内からJAX-RS jarをロードすることも可能であるようです。このDisableIBMJAXRSEngineプロパティを設定する必要があり、module(EARレベルではない)クラスローダーのクラスロードオプションをClasses loaded with local class loader first (parent last)に変更する必要があります。

管理コンソールで:

アプリケーション> WebSphere Enterprise Applications> {your.application}>モジュールの管理> {your.module}

[クラスローダーの順序]ドロップダウンをClasses loaded with local class loader first (parent last)に変更します。

それをチェックしてくれたdooffasに感謝します。 JAX-RS 2.0 WebSphere 8.5分離共有ライブラリなし

29
Gas