【问题标题】:My Jakarta EE9 project works only on Payara server. Why?我的 Jakarta EE9 项目仅适用于 Payara 服务器。为什么?
【发布时间】:2021-07-05 13:19:03
【问题描述】:

我的 hello-world “Jakarta EE 9”项目,托管在 https://github.com/iubar/hello-jaxrs 仅适用于 Payara 5.2021.2,但不适用于 Tomcat 10 和 Wildfly 23.0。 有什么想法吗?

【问题讨论】:

  • 您使用的是 WildFly 23 Preview EE 9 分布还是正态分布 (Jakarta EE 8)? Tomcat 10 未实现 JAX-RS:您是否将 Jersey 3 或其他 JAX-RS 实现添加到运行时?
  • 嗨 Piotr,1) 我正在使用 WildFly 23 决赛,我是从主下载页面获得的。我什么都不知道,我以为它支持 EE 9。2)当你说“运行时”时,你是指服务器运行时还是战争依赖?

标签: tomcat jakarta-ee jax-rs wildfly payara


【解决方案1】:

关于 Wildfly 23,有两个版本可用(参见download page):

  • Jakarta EE Full & Web distribution 是一个完整的 Jakarta EE 8 服务器。这基本上是 Java EE 8 的品牌重塑。
  • WildFly 23 Preview EE 9 是完整的 Jakarta EE 9 服务器。只有此版本使用新的 jakarta.* 命名空间。

关于 Tomcat 10:Tomcat 仅实现了 Jakarta EE 9 的五个(Servlet、JSP、EL、Websocket 和 JASPIC)规范(参见version list)。由于 Servlet API 与其他规范(例如 Annotations、JPA 和 JAX-WS)交互,如果您将规范和实现 JAR 添加到 common 类路径 ($CATALINA_HOME/lib),Tomcat 将正确运行。

您项目的链接已损坏,但我猜它使用了 JAX-RS。因此,您有两种选择:

【讨论】:

  • 现在我的示例项目具有公开可见性 (github.com/iubar/hello-jaxrs)
  • 该项目在 OpenLiberty 21.0.0.4-beta 和 Payara 5.2021.2 上运行良好。 (我认为它们都是第一个支持EE9的版本)
  • 我尝试将“jakarta.jakartaee-api-9.0.0.jar”添加到 tomcat10/lib/ 但没有成功。
  • 我想我会选择 OpenLiberty,它有非常丰富的文档并且对 maven 很友好。谢谢彼得。
  • 我听从了您的建议,但 Tomcat 10 返回“javax.servlet.ServletException: Servlet.init()'”错误,这表明依赖版本不受支持或版本克隆。所以我放弃了 Tomcat,转而使用 OpenLiberty。谢谢你的支持。再见
猜你喜欢
  • 2022-01-10
  • 1970-01-01
  • 2022-01-12
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-15
  • 2019-10-03
相关资源
最近更新 更多