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

将JSF/Seam/JBoss应用程序升级到新版本

施茂
2023-03-14

我正在为我们的应用程序创建升级路径,在此过程中出现了几个问题。我想,我的配置经常在这种情况下使用,所以也许有人以前经历过。

简短的应用程序描述:

  • JSF Web应用程序
  • ICE作为JSF框架(实际版本1.8.3最新是3.1)
  • 接缝作为EJB/View之间的连接(实际是2.1.1,最新是2.2.2或3)
  • 在JBoss 4.2.2中部署。GA(最新是7.1)
  • 通过Hibernate/Seam EntityManager进行数据库连接

首先应该升级什么?哪个更新甚至没有必要?

以下是我得出的结论:

>

  • ICEface似乎基本上是无害的,只是替换了jar并升级到JSF 2,该应用程序已经使用了facelets而没有JSP,这应该会使它更容易。尽管如此,它还是可以工作,但似乎是直截了当的

    像Hibernate这样的其他库随应用程序一起提供,但是可以通过类加载集成到JBoss中,所以这应该不是什么大问题。

    由于Seam3似乎是一个新的实现,我想留在2。X上下文。2.2.2似乎合理,并且存在迁移指南,但它似乎与JBoss AS紧密耦合。

    这就引出了主要问题:升级JBoss

    JBoss的最新版本是7.1,我们使用的是4.2.2。这在版本数量上迈出了相当大的一步,似乎是一个复杂的部分。此外,Seam似乎在JBoss 7中存在一些问题。对JBoss 6进行初步升级似乎是一个合理的过程,只是为了让某些东西更为更新。

    有没有人在这里执行了如此大的升级进度,可以给新手一些提示?也许有一些关于已知陷阱和需要做的事情的提示(除了不断测试现有的代码库)

    而且,一般来说,在给定的J2EE上下文中,何时应该升级使用过的库(抛开安全更新或主要错误修复)?

  • 共有2个答案

    薛淮晨
    2023-03-14

    选择“通过Hibernate/Seam EntityManager进行数据库连接”作为第一优先级,并测试数据库操作是否在JBoss 7中正确运行,因为JBoss 7与旧版JBoss完全不同。并尝试“Seam作为EJB/View之间的连接”部分。最后一个需要更新的部分是“作为JSF框架的ICEfaces”。

    裴心水
    2023-03-14

    如果你在升级do 2.3时遇到了麻烦,那么它仍然是beta版(我上次听说beta2,可能有seam gen支持),但在jsf2上拥有2.2的所有功能,并在jboss 7上运行。从2.1升级到2.2并不会给您带来太多好处,2.2在没有太多工作的情况下不能与jboss7一起工作,也没有jsf2,尽管更容易升级到2.2/jboss5。

    如果您正在考虑Seam3,请阅读此-改用JavaEE/CDI。
    我会的

    开始学习maven

    使用jboss工具和maven插件将eclipse升级到indigo

    让Jboss 7启动并运行——它与6之前的版本完全不同,但是让它运行相对容易,困难的部分是弄清楚现在一切都在哪里。

    重新配置您的应用程序以使用maven

    将Seam 2.3库添加到应用程序中

    构建-修复-部署-修复

    或者将应用程序剥离,直到其正常工作,然后一次添加一个组件。

    Marek的2.3博客在这里

     类似资料:
    • 我对JSF很陌生,我先尝试了一个crud操作来继续我的项目,但是我在将数据插入到表中的时候遇到了一个问题。希望有人能对我的错误开刀。我从控制台上的错误报告开始,然后是类。 我的堆栈跟踪如下: 我用于插入日期的xhtml页面: 使用的接口:@Local public Interface LoginhistoryAction extends Serializable{public String cre

    • 一个Seam war应用程序(JSF1.2),以前迁移到JBoss7.1并运行良好,现在需要迁移到Wildfly Beta1。 默认情况下Wildfly不支持JSF1.2,因此遵循以下说明启用它: 项目建设得很好,野蝇启动得也很好。当我尝试打开一个页面时,它会抛出异常: 根据这个链接,javax.faces.context.facescontext.getAttributes()的返回类型参数发生

    • 目前,我正在努力将我的seam jbpm应用程序从Jboss 5.1迁移到WildFly 8.2 我使用的是Seam 2.2和JBPM 3.3,在WildFly 8.2上部署了jboss 5.1应用程序。在java 8上编译后,修复了一些问题,我被JBPM问题阻止。 下面是我的服务器日志 如果有人有解决办法,请告诉我。

    • 问题内容: 因此,我已经安装了Node.js,现在当我尝试安装Mongoosejs时,出现一个错误消息,告诉我我没有所需的Node.js版本(我需要v0.4.11和v0.4.12)。 如何升级到此版本?我想我可以重新安装最新版本,但是在确定不会删除“节点”文件夹中的项目文件夹之前,我不想这样做。 问题答案: Linux / Mac: 该模块使版本管理变得容易: 对于最新的稳定版本: 对于最新版本:

    • 我正在将JDK 8应用程序转换为JDK 11。它使用Gradle构建,并在内部使用JPA/Hibernate。我已经升级了必要的Gradle模块,Spring Boot现在是2.1,它使用Gradle 5.1包装器。它使用QueryDSL JPA注释处理从PostgreSQL数据库构建Q*类。 生成脚本中的以下任务生成上述类: 注释掉的QueryDSL生成任务是: 运行Gradle compile

    • 如何在JBoss服务器中升级Mojarra并告诉它使用给定的Mojarra 2. x JAR而不是JBoss自己的如启动日志所示? 如果相关的话,我目前正在使用JBoss AS 7.1。