CDI 2、JAX-RS 和依賴函式庫支援
目錄
簡介
CDI 和 JAX-RS 是許多其他 API 和函式庫的依賴項。本指南說明如何使用 Tomcat 來源中提供的兩個選用模組,在 Tomcat 中新增對它們的支援。
CDI 2 支援
CDI 2 支援由 modules/owb
選用模組提供。它封裝了 Apache OpenWebBeans 專案,並允許將 CDI 2 支援新增到 Tomcat 容器。模組的建置流程使用 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 版本) 中產生的 JAR 應由 Tomcat 遷移工具處理,以適用於 Jakarta EE,然後放置到 Tomcat 安裝的 lib
資料夾中。然後,可以在
server.xml
中新增下列監聽器,嵌套在 Server
元素內,以針對容器中的所有 Web 應用程式啟用 CDI 支援
<Listener className="org.apache.webbeans.web.tomcat.OpenWebBeansListener" optional="true" startWithoutBeansXml="false" />
CDI 支援也可以透過將下列監聽器新增至嵌套在
Server
元素內的 Webapp context.xml
檔案,在個別 Webapp 層級啟用
<Listener className="org.apache.webbeans.web.tomcat.OpenWebBeansContextLifecycleListener" />
JAX-RS 支援
JAX-RS 支援由 modules/cxf
選用模組提供。它封裝 Apache CXF 專案,並允許為個別 Webapp 新增 JAX-RS 支援。模組的建置程序使用 Apache Maven,且由於使用許多公開的 JAR 建置,因此無法作為二進位套件提供。此支援仰賴 CDI 2 支援,而 CDI 2 支援應已事先安裝在容器或 Webapp 層級。
建置 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 2 支援在容器層級可用,也可以將 JAR 放置在 Tomcat lib
資料夾中,但這種情況下,CXF Servlet 宣告必須視需要個別新增至每個 Webapp(通常由 JAR 中存在的 Web 片段載入)。應使用的 CXF Servlet 類別是 org.apache.cxf.cdi.CXFCdiServlet
,且應對應至 JAX-RS 資源可用的所需根路徑。
整個 Webapp 應由 Tomcat 遷移工具處理,以適用於 Jakarta EE。
Eclipse Microprofile 支援
ASF 人工製品可使用 CDI 2 擴充功能來實作 Eclipse Microprofile 規格。一旦安裝 CDI 2 和 JAX-RS 支援,個別 Webapp 便可以使用這些支援。
下列實作可用(參考:org.apache.tomee.microprofile.TomEEMicroProfileListener
)作為 Maven 人工製品,必須新增至 Webapp /WEB-INF/lib
資料夾
- 組態:Maven 人工製品:
org.apache.geronimo.config:geronimo-config
CDI 擴充功能類別:org.apache.geronimo.config.cdi.ConfigExtension
- 容錯:Maven 人工製品:
org.apache.geronimo.safeguard:safeguard-parent
CDI 擴充功能類別:org.apache.safeguard.impl.cdi.SafeguardExtension
- 健康:Maven 人工製品:
org.apache.geronimo:geronimo-health
CDI 擴充功能類別:org.apache.geronimo.microprofile.impl.health.cdi.GeronimoHealthExtension
- 指標:Maven 人工製品:
org.apache.geronimo:geronimo-metrics
CDI 擴充功能類別:org.apache.geronimo.microprofile.metrics.cdi.MetricsExtension
- OpenTracing:Maven 工件:
org.apache.geronimo:geronimo-opentracing
CDI 擴充套件類別:org.apache.geronimo.microprofile.opentracing.microprofile.cdi.OpenTracingExtension
- OpenAPI:Maven 工件:
org.apache.geronimo:geronimo-openapi
CDI 擴充套件類別:org.apache.geronimo.microprofile.openapi.cdi.GeronimoOpenAPIExtension
- Rest 客戶端:Maven 工件:
org.apache.cxf:cxf-rt-rs-mp-client
CDI 擴充套件類別:org.apache.cxf.microprofile.client.cdi.RestClientExtension
- JSON Web Tokens:注意:僅供參考,Apache TomEE 外部無法使用;Maven 工件:
org.apache.tomee:mp-jwt
CDI 擴充套件類別:org.apache.tomee.microprofile.jwt.cdi.MPJWTCDIExtension