web server apache tomcat11-33-CDI

devtools/2024/9/24 4:46:50/

前言

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。

开源项目

从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。

系列文章

web server apache tomcat11-01-官方文档入门介绍

web server apache tomcat11-02-setup 启动

web server apache tomcat11-03-deploy 如何部署

web server apache tomcat11-04-manager 如何管理?

web server apache tomcat11-06-Host Manager App -- Text Interface

web server apache tomcat11-07-Realm Configuration

web server apache tomcat11-08-JNDI Resources

web server apache tomcat11-09-JNDI Datasource

web server apache tomcat11-10-Class Loader

web server apache tomcat11-11-Jasper 2 JSP Engine

web server apache tomcat11-12-SSL/TLS Configuration

web server apache tomcat11-13-SSI

web server apache tomcat11-14-CGI

web server apache tomcat11-15-proxy

web server apache tomcat11-16-mbean

web server apache tomcat11-17-default-servlet

web server apache tomcat11-18-clusting 集群

web server apache tomcat11-19-load balance 负载均衡

web server apache tomcat11-20-connectors 连接器

web server apache tomcat11-21-monitor and management 监控与管理

web server apache tomcat11-22-logging 日志

web server apache tomcat11-23-APR

web server apache tomcat11-24-Virtual Hosting and Tomcat

web server apache tomcat11-25-Advanced IO and Tomcat

web server apache tomcat11-26-maven jars

web server apache tomcat11-27-Security Considerations

web server apache tomcat11-28-Windows Service

web server apache tomcat11-29-Windows Authentication

web server apache tomcat11-30-The Tomcat JDBC Connection Pool

web server apache tomcat11-31-websocket

web server apache tomcat11-32-rewrite

web server apache tomcat11-33-CDI

web server apache tomcat11-34-Ahead of Time compilation support

Tomcat 中添加 CDI 和 JAX-RS 支持指南

CDI 2 支持

CDI 2 支持由 modules/owb 可选模块提供。它打包了 Apache OpenWebBeans 项目,并允许将 CDI 2 支持添加到 Tomcat 容器中。该模块的构建过程使用 Apache Maven,并不作为二进制捆绑包提供,因为它是使用一些公开可用的 JAR 构建的。

构建 CDI 支持的过程如下:

cd $TOMCAT_SRC/modules/owb
mvn clean && mvn package

生成的 JAR 文件位于 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 容器加载失败,监听器将产生非致命错误。

也可以通过在 Server 元素的嵌套中的 webapp context.xml 文件中添加以下监听器来为单个 Web 应用程序启用 CDI 支持:

<Listener className="org.apache.webbeans.web.tomcat.OpenWebBeansContextLifecycleListener" />

JAX-RS 支持

JAX-RS 支持由 modules/cxf 可选模块提供。它打包了 Apache CXF 项目,并允许将 JAX-RS 支持添加到单个 Web 应用程序中。该模块的构建过程使用 Apache Maven,并不作为二进制捆绑包提供,因为它是使用一些公开可用的 JAR 构建的。此支持依赖于 CDI 2 支持,CDI 2 支持应已在容器或 Web 应用程序级别先前安装。

构建 JAX-RS 支持的过程如下:

cd $TOMCAT_SRC/modules/cxf
mvn clean && mvn package

生成的 JAR 文件位于 target/tomcat-cxf-x.y.z.jar(其中 x.y.z 取决于构建过程中使用的 Apache CXF 版本),然后应放置到所需 Web 应用程序的 /WEB-INF/lib 文件夹中。

如果 CDI 2 支持在容器级别可用,则该 JAR 文件也可以放置在 Tomcat lib 文件夹中,但在这种情况下,CXF Servlet 声明必须根据需要单独添加到每个 Web 应用程序中(通常由 JAR 中存在的 Web 片段加载)。应使用的 CXF Servlet 类是 org.apache.cxf.cdi.CXFCdiServlet,应将其映射到 JAX-RS 资源可用的所需根路径。

整个 Web 应用程序应通过 Jakarta EE 的 Tomcat 迁移工具处理。

Eclipse Microprofile 支持

ASF(Apache Software Foundation)提供了使用 CDI 2 扩展实现 Eclipse Microprofile 规范的工件。安装了 CDI 2 和 JAX-RS 支持后,它们将可供单个 Web 应用程序使用。

以下实现可用(参考:org.apache.tomee.microprofile.TomEEMicroProfileListener)作为必须添加到 Web 应用程序 /WEB-INF/lib 文件夹的 Maven 工件:

  • 配置: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
  • 开放追踪: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 令牌:注意:仅供参考,在 Apache TomEE 外不可用;Maven 工件:org.apache.tomee:mp-jwt,CDI 扩展类:org.apache.tomee.microprofile.jwt.cdi.MPJWTCDIExtension

参考资料

https://tomcat.apache.org/tomcat-11.0-doc/cdi.html


http://www.ppmy.cn/devtools/40757.html

相关文章

Vue创建todolist

电子书 第三章&#xff1a; https://www.dedao.cn/ebook/reader?idV5R16yPmaYOMqGRAv82jkX4KDe175w7xRQ0rbx6pNgznl9VZPLJQyEBodb89mqoO 没有使用VUE CLI创建项目。 创建步骤&#xff1a; 1&#xff0c; 用Vite 创建项目 2&#xff0c; npm run dev 运行程序 参照之前的文…

01WPS部分编写实现QT

1、新建项目 -创建wps类 -继承QMainWindow 2、菜单栏设置 3、开始实现操作 设置程序图标&#xff1a; pro文件中添加 RC_ICONS images/wps.ico //后面这个是文件地址哈1、字体选择大小设置 void MainWindow::initMainWindow() {// 初始化字号列表项QFontDatabase fontdb;…

详解AI算法作画原理

AI作画算法的原理主要基于深度学习和计算机视觉技术&#xff0c;特别是生成对抗网络&#xff08;GANs&#xff09;和卷积神经网络&#xff08;CNNs&#xff09;等模型。以下是AI作画算法原理的详细解释&#xff1a; 数据收集与处理&#xff1a; AI作画的第一步是收集大量的艺术…

【送书福利第七期】你好!Java(文末送书)

文章目录 编辑推荐内容简介作者简介目录前言/序言 编辑推荐 适读人群 &#xff1a;程序员;相关院校师生 本书以轻松幽默的语言&#xff0c;从零开始介绍Java语言。书名来源于编程语言中最经典的Hello World程序&#xff0c;寓意带读者从入门到精通。 书中每章都设有总结与扩展…

QT设计模式:代理模式

基本概念 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你提供一个代理对象&#xff0c;以控制对其他对象的访问。 代理通常在客户端和实际对象之间充当中介&#xff0c;用于控制对实际对象的访问&#xff08;如登录控制&#xff09;…

vue的计算属性

Vue的计算属性&#xff08;Computed Properties&#xff09;是一种更加强大的数据绑定方式&#xff0c;它允许你定义依赖于其他数据属性的计算属性。计算属性是基于它们的依赖进行缓存的&#xff0c;只有相关依赖发生改变时才会重新求值。这意味着只要计算属性依赖的响应式属性…

Spring Framework-IoC详解

IoC的概念和作用 在介绍Ioc之前&#xff0c;我们首先先了解一下以下内容 什么是程序的耦合 耦合性(Coupling)&#xff0c;也叫耦合度&#xff0c;是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度…

牛客热题:链表相加(二)

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;链表相加(二)题目链接方法一&am…