从 JBoss 4.2.x 升级到 JBoss 5.x、6.x、7.x 和 WildFly 8.x 的好处(和技巧)?
请假设我不需要担心开发时间和成本:我对一般技术优势(改进的性能?改进的 API?)和新功能感兴趣。
我是目前正在开发使用 4.2.x 的产品,我们考虑对未来很长一段时间且需要收敛的版本进行重大转变。
我简要浏览了每个版本的发行说明以及有关 5.x、6.x、7.x 和 8.x 每个版本的一些文章。但我很高兴能得到已经做出转变的人的第一手反馈。
我注意到围绕消息传递有一些重要的变化(从 JBoss MQ 切换到 JBoss Messenging),对于 JBoss 7.x 来说,它的配置层似乎发生了相当大的变化。当切换到 JBoss/WildFly 8.x 时,还会发生更多事情。
如果可以的话,请推荐指出陷阱的好文章。我发现了一些用于迁移到 JBoss 5.x 的方法,但用于 6.x 甚至 7.x 的方法并不多,而且其他人现在正在为我们评估 8.x。如果您认为相关,也可以随意推荐替代方案,但我更愿意只关注 JBoss。
作为参考,我们混合使用了支持 JPF 和 OSGi(使用 Eclipse Equinox)的基于插件的系统,并使用 Swing 开发的客户端(一些通过 WebStart 部署)。
更新:虽然这个问题已经带来了一些很好的答案,但我认为它值得对 WildFly 进行更新(实际上,我们的内部项目推迟了从 4.2.x 到 7.x 的切换,按原计划等待对于野蝇)。欢迎新的想法和答案。
Please assume that I do not need to worry about development time and costs: I am interested in general technical benefits (improved performance? improved APIs?) and new features.
I am currently working on products using 4.2.x, and we consider a major shift for versions that are a long time ahead and need to converge.
I had a brief look at the release notes of each version and some articles about each release for 5.x, 6.x, 7.x and 8.x. But I would be glad to have first-hand feedback from people who have made the switch.
I noticed there are some important changes surrounding messaging (switching from JBoss MQ to JBoss Messenging), and that for JBoss 7.x it seems to change a fair bit its configuration layer. Then there's a lot more going on when switching to JBoss/WildFly 8.x.
Please recommend good articles pointing at pitfalls if you can. I found a few for migrations to JBoss 5.x, but not that many for 6.x or even 7.x, and someone else is evaluating 8.x for us now. Feel free to recommend alternatives as well if you think they are relevant, though I'd prefer to focus only on JBoss.
For information, we use a mix of JPF- and OSGi-enabled (using Eclipse Equinox) plugin-based systems, with clients developed in Swing (some deployed via WebStart).
Update: Though this question brought some great answers already, I think it deserves an update for WildFly (and actually, our internal projects delayed making the switch from 4.2.x to 7.x as originally planned to wait for WildFly). New thoughts and answers are welcome.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
只是想让升级到最新版本后可能面临 PermGen 膨胀问题的任何人注意这一点。 JBoss-6 微容器尝试通过在启动时加载类路径中所有 JAR 中的类来扫描 Jboss 特定注释。这会导致 PermGen 膨胀,因为它开始加载所有不需要的类。为了减少扫描量,微容器通过 jboss-scanning.xml 提供了另一个描述符挂钩。
将此“jboss-scanning.xml”添加到 WAR 内的 WEB-INF,并将“jboss-scanning.xml”添加到 EAR 内的 META-INF。
Just wanted to bring this to anyone's attention who might be facing PermGen bloat issue after upgrading to the latest. The JBoss-6 Microcontainer tries to scan for Jboss specific annotations by loading the classes from all the JARs in the class-path on startup. This causes the PermGen bloating as it starts to load all the unwanted classes. To reduce the amount of scanning, the Microcontainer provides another descriptor hook, by means of jboss-scanning.xml.
Add this 'jboss-scanning.xml' to the WEB-INF inside WARs and ass 'jboss-scanning.xml' to the META-INF inside EARs.
我已经从 JBoss 4 升级到 5,根据经验,以下是最需要注意的:
一些有用的资源是:
https://dzone.com/articles/migration-jboss -4-jboss-5
http://venugopaal.wordpress.com/2009/02/ 02/jboss405-to-jboss-5ga
JBoss 6 官方仅针对 Java EE Web 进行了认证Profile,因此如果您使用“遗留”功能(例如 EJB 2.x),将来可能不会支持它们。根据应用程序的生命周期,这可能是问题,也可能不是问题。 JBoss 6 目前完全支持 EJB2.1,但尚未对此进行认证。
我还发现 JBoss 5 处理内存的能力比 JBoss 4 好得多。使用 JBoss 4 时,我看到的 PermGen 错误比使用 JBoss 5 时多得多。
I've upgraded from JBoss 4 to 5 and from experience the following are the most important to note:
Some useful resources are:
https://dzone.com/articles/migrating-jboss-4-jboss-5
http://venugopaal.wordpress.com/2009/02/02/jboss405-to-jboss-5ga
Officially JBoss 6 is only certified for the Java EE Web Profile, so if you use "legacy" features such as EJB 2.x, they will potentially not be supported in the future. Depending on the lifecycle of your application, this may or may not be a problem. JBoss 6 currently supports EJB2.1 fully, but it is not certified against this.
I have also found that JBoss 5 handles memory a lot better that JBoss 4. With JBoss 4 I see a lot more PermGen errors than I do with JBoss 5.
我只能从 JBoss 5.1.0 的生产经验和对版本 6 的一些调查来谈。
JBoss 5 是 Java EE 5 以及 JBoss 6 和 7 是 Java EE 6。 API 功能的差异在这些规范中得到了最好的记录。 JBoss 6 的保质期很可能很短;它仅针对 Java EE 6 Web 配置文件进行了认证,并且错误修复针对版本 7(在在撰写本文时是其第三个测试版)。
我认为您可以在 JBoss 社区论坛上获得更好的答案。
I can only speak from production experience with JBoss 5.1.0 and some investigation of version 6.
JBoss 5 is Java EE 5 and JBoss 6 and 7 are Java EE 6. The disparity in API features is best documented in those specs. JBoss 6 is likely to have a very short shelf-life; it is only certified for the Java EE 6 web profile and bugfixes are being targeted at version 7 (in its 3rd beta at time of writing).
I think you'd get better answers on the JBoss community forum.
我们从 JBoss AS 5 升级到 JBoss AS 7,并着眼于 WildFly AS 8.1。目前我们无法迁移到 8,因为没有 MQ Series JMS 2 RAR。
一些区别:
我们必须对应用程序进行的更改:
AS 7.x 系列有很多的错误,并且仅在 EAP 系列中提供了修复。如果您想使用 7.x 而不是 8.x,我们强烈建议您购买 EAP 6。
We upgraded from JBoss AS 5 to JBoss AS 7 and are eying towards WildFly AS 8.1. Right now we can't migrate to 8 because there is no MQ Series JMS 2 RAR.
Some of the differences:
Changes that we had to do our application:
The AS 7.x series has a lot of bugs with fixes only available in the EAP series. If you want go to with 7.x instead of 8.x we strongly recommend you buy EAP 6.
这里有一个关于 JBoss AS 7 妥协和未来的有趣主题,还提到了 AS 5 和 AS 6 的问题:
http: //community.jboss.org/message/613171
Here is an interesting thread on JBoss AS 7 compromises and future, also mentioning issues with AS 5 and AS 6:
http://community.jboss.org/message/613171