当前位置: 首页 > 知识库问答 >
问题:

Tomcat,WELD 3,CDI 2,WeldTerminalListener

岳阳文
2023-03-14

尝试使用CDI 2.0建立一个maven Web项目,该项目应该在Tomcat 8.5上运行。所以我必须安装杰布斯 WELD 3。

Weld、CDI和Java EE版本之间有什么关系?

随着POM声明离开这里(只有“焊缝-servlet-核心”)…

WELD - POM宣言(docs.jboss.org)

我在web上声明的“WeldTerminalListener”出现错误。这样的xml

<!-- This listener should always be the last registered listener -->
<listener>
    <listener-class>org.jboss.weld.servlet.WeldTerminalListener</listener-class>
</listener>

错误:Java . lang . classnotfoundexception:org . JBoss . weld . servlet . weldterminalselistener

如果我使用以下POM声明,它工作正常:

<dependency>
  <groupId>org.jboss.weld.servlet</groupId>
  <artifactId>weld-servlet</artifactId>
  <version>2.3.5.Final</version>
</dependency>

weld-servlet(不含"-core") 3仅作为alpha版本提供。版本2不支持CDI 2.0。

那么,我需要POM中的哪个依赖项来运行它呢?

共有2个答案

马飞
2023-03-14

关于焊接-servlet-core 库的 3.x 版,该类的实际位置似乎不同。在浏览了库jar文件之后,我发现该类的全名如下:

<listener>
    <listener-class>org.jboss.weld.module.web.servlet.WeldTerminalListener</listener-class>
</listener>
费承载
2023-03-14

Weld 3 更改了一些工件名称。这是已更改的阴影工件,请参阅文档的这一部分。

也就是说,在Weld 2中weld-servlet是此JAR的阴影版本,因此Weld 3中的等效版本是weld-servlet-shaded

在你的情况下,你可以使用这个着色版本(组织.jboss.weld.servlet:焊接-servlet-着色)或核心版本(组织.jboss.weld.servlet:焊接-servlet-core)。

至于听众的类,你可以在GH上检查自己,但故事是它也被改变了(向JDK 9中的包冲突打招呼)。现在是:

<listener>
    <listener-class>org.jboss.weld.module.web.servlet.WeldTerminalListener</listener-class>
</listener>

焊接文件(适用于3.0.3.最终版)对此有错误信息。我会确保它在下一版本中得到更正(感谢您指出这一点)。

 类似资料:
  • 我在Mac上安装了bitnami Tomcat 7(apache Tomcat mysql),使用java 1.7 76。我的Mac使用java 1.8运行时。当我将我的项目(在同一台Mac上用intellij制作)部署到tomcat并尝试运行它时,我得到了一个不受支持的ClassVersionError。我用哪个版本的JDK编译这个项目并不重要(我试过apple 1.6、oracle 1.7和o

  • 通过使用Spring Boot应用程序,我们可以创建一个war文件以部署到Web服务器中。 在本章中,您将学习如何创建WAR文件并在Tomcat Web服务器中部署Spring Boot应用程序。 Spring Boot Servlet初始化程序 传统的部署方式是使Spring Boot Application @SpringBootApplication类扩展SpringBootServletI

  • 1.1 配置文件 1.2 2. 实现原理 工具 功能 SocketServer 接收请求,返回结果。 浏览器 使用 html 发送请求。 Request 封装请求数据。 Reponse 封装响应数据。 Servlet 实现处理过程。 Dispatcher 实现请求分发。 HashMap 保存 URL 和 Servlet 的映射关系。 XML 定义 URL 和 Servlet 的映射关系。 SAXR

  • Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。

  • Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的

  • 实现汤姆猫的固定动作及响应屏幕拍打。仅作学习交流使用。  

  • Tomcat Lite 是一个 SPDY 客户端/服务器的 Java 语言实现

  • 在Tomcat中,与是什么 我知道是打开到服务器的连接数 而是请求处理线程的最大数目