5

Websphere 8.0.0.6 が JAX-RS 1.1 の Apache Wink 実装を使用していることを理解しています。

Apache Wink のどのバージョンを使用しているのか気になります。

また、Apache CXF を使用する必要がある場合、CXF jar を戦争にバンドルするだけですか?

また、Websphere 8.0.0.6 が CDI (Weld 2.x ??)、Bean Validation (??)、JPA (??)、JAXB (??) などに使用する実装は何ですか?

4

2 に答える 2

6

WAS v8.0.0.x は、Wink v1.1-incubating の独自の修正バージョンを使用します。{WAS_HOME}/plugins に移動すると、com.ibm.ws.jaxrs.jar という名前の .jar が表示されます。そのアーティファクト内の MANIFEST を調べると、IBM が Wink v1.1-incubating を変更し、独自の v1.1.1 を作成したことがわかります。wink-jcdi-server が組み込まれているため、このバージョンを使用することをお勧めします。そうしないと、EJB を Wink リソースに注入できず、多くの厄介な問題が発生します。私は通常、ベンダー固有のソリューションに縛られるのは好きではありませんが、この場合は、IBM の Wink 実装を使用することになります。wink-jcdi-server を v1.2-incubating から v1.1-incubating にバックポートしましたが、一時的に成功しました (jcdi 機能が動作するようになりましたが、根本的な原因が特定できず、数回の展開で失われました)。だから、たくさんのフラストレーションをためずに、IMB の Wink 実装を使用してください。IBM の Wink 実装は、クラスローダー ポリシーを PARENT_FIRST または PARENT_LAST に設定するかどうかに関係なく、OSGi 関連の成果物を介してアプリに公開されます。それはバグだと思います。また、com.ibm.ws.prereq.jaxrs.jar アーティファクトもプロジェクトに含める必要があります。

web.xml で、次の構成を使用します。

<!-- Wink Servlet -->
<servlet>
    <description>JAX-RS Tools Generated - Do not modify</description>
    <servlet-name>JAX-RS Servlet</servlet-name>
    <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.company.webservices.config.WinkApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <enabled>true</enabled>
    <async-supported>false</async-supported>
</servlet>

<!-- Wink Servlet Mapping -->
<servlet-mapping>
    <servlet-name>JAX-RS Servlet</servlet-name>
    <url-pattern>/resources/*</url-pattern>
</servlet-mapping>

JAX-RS に関する IBM 独自の WAS v8.0 ビデオによると、 Application クラスと ApplicationPath アノテーションを拡張することで、 Application サブクラスが自動的に認識されます。これはそうではありません。web.xml で Application サブクラスを指定する必要があります。ただし、デフォルトの Wink アプリケーションが使用されたことがコンソールに表示されます。これは誤りです。クラスが取得され、getClasses メソッドをオーバーライドし、プロバイダー、リソースなどを登録する必要があります。この動作は、WAS v8.0.0.8 の時点で観察され、徹底的にテストされています。

代わりに、WAS 8 で CXF を試すことができます。

Geronimo や TomEE と同様に、WAS は Apache 製品上に構築されています。私は間違っているかもしれませんが、最後に思い出したように、WAS v8.0 は Apache OpenWebBeans v1.0、Apache BVal v1.0、Apache OpenJPA v2.1.2-SNAPSHOT を使用します。JAXB についてはよくわかりませんが、独自の json4j フレームワークを使用していると思います。私はMOXyを使って驚くほど成功しています。

于 2014-02-22T21:19:22.503 に答える
1

versionInfoWAS_HOME/bin ディレクトリーにあるスクリプトを実行すると、コンポーネントのバージョンに関する詳細なレポートを取得できます。たとえば、Linux の場合:

./versionInfo.sh -file versionReport.txt -maintenancePackages -componentDetail

仕様のバージョンは、仕様と API ドキュメントに一覧表示されています

于 2013-08-14T18:32:41.967 に答える