gpt4 book ai didi

jsf - 将 com.sun.faces 与 Jakarta EE 结合使用

转载 作者:行者123 更新时间:2023-12-05 03:48:52 25 4
gpt4 key购买 nike

我正在尝试将 Wildfly 服务器上的遗留 Java EE 应用程序升级到 Jakarta EE 8。大部分升级都进行得很顺利,因为 8 还没有将包名交换为 jakarta。然而,我们的一些代码使用了 Oracle 的 com.sun.faces 包中的类。这些类似乎包含在 Jakarta EE Faces API 中 specification ,但是当我使用以下 Maven 依赖项时,它们不包含在我们的项目中:

<dependency>
<groupId>jakarta.faces</groupId>
<artifactId>jakarta.faces-api</artifactId>
<version>2.3.2</version>
<scope>provided</scope>
</dependency>

要在类路径中获取这些,我必须使用 Oracle 依赖项:

<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.20</version>
<scope>provided</scope>
</dependency>

显然,我们想在某个时候完全放弃使用这个包,但我希望有一种方法可以将它包含在我们的 Jakarta 迁移中。

最佳答案

com.sun.faces.* 不是 Jakarta EE API 的一部分。它是 Jakarta EE 实现的一部分。更准确地说,它是实际的 JSF 实现。它的名字是“Mojarra”。

您确实不需要在您的 pom.xml 中依赖它以独立于 JEE 实现(即为了能够将您的 webapp 部署到任何 JEE-没有任何代码更改的兼容服务器)。但是,如果代码在您删除它时没有编译,那么您显然在某个地方对它有硬依赖性,例如引用 com.sun.faces.* 包的硬编码导入或父类(super class)。这确实通常是不正确的。

解决方案应该很简单:

  1. 删除对 Mojarra 的依赖
  2. 找出所有的编译错误
  3. 使用标准的 JSF API 方法一一修复它们
  4. 如果找不到任何人,请在 Stack Overflow 上进行研究或提问

关于jsf - 将 com.sun.faces 与 Jakarta EE 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64201991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com