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を使って驚くほど成功しています。