首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jakarta中使用com.sun.faces

在Jakarta中使用com.sun.faces
EN

Stack Overflow用户
提问于 2020-10-05 03:11:24
回答 1查看 785关注 0票数 3

我试图在Wildfly服务器上将遗留的Java应用程序升级到Jakarta 8。由于8没有将包名交换给雅加达,所以大部分升级工作进展顺利。但是,我们的一些代码正在使用Oracle的com.sun.faces包中的类。这些类似乎包含在Jakarta 规格说明中,但当我使用以下Maven依赖项时,它们不包含在我们的项目中:

代码语言:javascript
复制
<dependency>
    <groupId>jakarta.faces</groupId>
    <artifactId>jakarta.faces-api</artifactId>
    <version>2.3.2</version>
    <scope>provided</scope>
</dependency>

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

代码语言:javascript
复制
<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-impl</artifactId>
    <version>2.2.20</version>
    <scope>provided</scope>
</dependency>

显然,我们想在某一时刻完全放弃使用这个包,但我希望有一种方法将其包括在我们的雅加达迁移中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 06:56:29

com.sun.faces.*是Jakarta的而不是的一部分。它是雅加达EE implementation.的一部分更确切地说,这是实际的JSF实现。它的名字是"银鲈“。

您确实不应该需要在您的pom.xml中对它具有依赖关系,这样才能独立于JEE实现(也就是说,为了能够将您的JEE应用程序部署到任何与JEE兼容的服务器上,而不需要任何代码更改)。但是,如果代码在删除时没有编译,那么显然在某个地方有一个硬依赖项,例如引用com.sun.faces.*包的硬编码导入或超类。这通常是不正确的。

解决办法应该是直截了当:

  1. 删除Mojarra依赖项
  2. 查找所有编译错误
  3. 使用标准JSF方法逐个修复它们
  4. 如果找不到人,研究或询问堆栈溢出
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64201991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档