CDI、JAX-RS、および依存ライブラリのサポート
目次
はじめに
CDIとJAX-RSは、他の多くのAPIやライブラリの依存関係です。このガイドでは、Tomcatのソースに含まれる2つのオプションモジュールを使用して、Tomcatにこれらのサポートを追加する方法について説明します。
CDIサポート
CDIサポートは、modules/owb
オプションモジュールによって提供されます。これはApache OpenWebBeansプロジェクトをパッケージ化し、TomcatコンテナにCDIサポートを追加することを可能にします。このモジュールのビルドプロセスにはApache Mavenが使用されており、多数の公開されているJARファイルを使用してビルドされるため、バイナリバンドルとしては提供されていません。
CDIサポートをビルドするプロセスは以下の通りです。
cd $TOMCAT_SRC/modules/owb
mvn clean && mvn package
target/tomcat-owb-x.y.z.jar
ファイル(x.y.zはビルド時に使用されるApache OpenWebBeansのバージョンに依存)は、Jakarta EE向けのTomcat移行ツールで処理された後、Tomcatインストールのlib
フォルダに配置する必要があります。CDIサポートは、
server.xml
内のServer
要素の中に以下のリスナーを追加することで、コンテナ内のすべてのWebアプリケーションに対して有効にできます。<Listener className="org.apache.webbeans.web.tomcat.OpenWebBeansListener" optional="true" startWithoutBeansXml="false" />
CDIサポートは、個々のWebアプリケーションレベルで、Webアプリケーションの
context.xml
ファイル内のServer
要素の中に以下のリスナーを追加することでも有効にできます。<Listener className="org.apache.webbeans.web.tomcat.OpenWebBeansContextLifecycleListener" />
JAX-RSサポート
JAX-RSサポートは、modules/cxf
オプションモジュールによって提供されます。これはApache CXFプロジェクトをパッケージ化し、個々のWebアプリケーションにJAX-RSサポートを追加することを可能にします。このモジュールのビルドプロセスにはApache Mavenが使用されており、多数の公開されているJARファイルを使用してビルドされるため、バイナリバンドルとしては提供されていません。このサポートはCDIサポートに依存しており、CDIサポートは以前にコンテナレベルまたはWebアプリケーションレベルのいずれかでインストールされている必要があります。
JAX-RSサポートをビルドするプロセスは以下の通りです。
cd $TOMCAT_SRC/modules/cxf
mvn clean && mvn package
target/tomcat-cxf-x.y.z.jar
ファイル(x.y.zはビルド時に使用されるApache CXFのバージョンに依存)は、その後、目的のWebアプリケーションの/WEB-INF/lib
フォルダに配置する必要があります。
CDIサポートがコンテナレベルで利用可能な場合、JARはTomcatのlib
フォルダに配置することもできますが、その場合、CXFサーブレットの宣言は必要に応じて各Webアプリケーションに個別に追記する必要があります(通常はJARに存在するWebフラグメントによってロードされます)。使用すべきCXFサーブレットクラスはorg.apache.cxf.cdi.CXFCdiServlet
であり、JAX-RSリソースが利用可能になる目的のルートパスにマッピングする必要があります。