CDI、JAX-RS 和相关库支持
目录
简介
CDI 和 JAX-RS 是许多其他 API 和库的依赖项。本指南解释了如何使用 Tomcat 源代码中提供的两个可选模块,在 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
文件夹中。然后,可以通过在
server.xml
中 Server
元素内添加以下监听器,为容器中的所有 Web 应用启用 CDI 支持<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 支持,后者应已在容器或 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 Servlet 声明必须根据需要单独添加到每个 Web 应用中(它通常由 JAR 中存在的 Web 片段加载)。应使用的 CXF Servlet 类是 org.apache.cxf.cdi.CXFCdiServlet
,并应映射到 JAX-RS 资源将可用的所需根路径。