从 Seam 2 切换到普通 JavaEE 6 最大的变化(损失)可能是什么?
问题几乎说明了一切,尽管明确地我正在寻找我可能会错过 Java EE 6 环境中的 Seam 2 的东西(“损失”)。
对于我最新的(小型)项目,JavaEE 6 或更具体地说 JSF 2 是一个修复要求,因此使用 Seam 2 不是一个选项(也不会是)。尽管有些人说让 Seam 2 与 JSF 2 一起工作,但我从未做到过。到目前为止,我只使用过 Seam 2,我担心切换到普通的 JavaEE 环境会带来比我目前意识到的更多的问题。
该项目具有以下基本/核心要求:
- 基于角色和权限的安全概念(约 50 个用户)
- JPA 2 事务持久性
- ...
其余部分将基于 GUI、搜索表单、客户端验证等。 RichFaces 4 和 JavaEE 6 bean 验证。没有网络服务,没有静态 URL,没有消息传递,没有电子邮件。
我可以看到使用 Seam 安全性肯定会造成损失,但我不确定 Seam 持久性、实体/查询框架、JBoss EL 和其他框架会是什么,尤其是整体编程模型 (导航、EL、bean)。请注意,我们将能够在有意义的情况下添加 Seam 3 模块,因此您可以将 Seam 3 包含在“增益”部分的讨论中。
那么,有人可以澄清一下吗? (它不必是一个完整的总结,无论您想到什么,请继续)
PS:我无法连接到 Seam 论坛,所以我觉得我需要在这里提问。
Question pretty much says it all, though explicitly I'm looking for the things I will probably miss about Seam 2 in a Java EE 6 environment ("losses").
For my latest (small) project JavaEE 6 or more specifically JSF 2 was a fix requirement, so using Seam 2 wasn't an option (and won't be). Even though some people said to get Seam 2 working with JSF 2, I never made it. So far I've only used Seam 2 and I fear switching to a plain JavaEE environment poses more of a problem than I'm currently aware.
The project has the following basic/core requirements:
- Role and permission-based security concept (~50 users)
- JPA 2 transactional persistence
- ...
The rest will be rather GUI-based, search forms, client validation etc. which will be handled be RichFaces 4 and JavaEE 6 bean validation. There are no web services, no restful URLs, no messaging, no emailing.
I can see that using Seam security would defintitely be a loss, but I'm not sure about what Seam persistence, the entity/query framework, JBoss EL, and others would be, especially the overall programming model (navigation, EL, beans). Note that we will be able to add Seam 3 modules when it makes sense, so you might include Seam 3 in the discussion in the "gains" section.
So, can anybody clear this up a little? (it doesn't have to be a complete wrap-up, whatever springs to your mind, go ahead)
PS: I wasn't able to connect to the Seam forums so I felt I needed to ask here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我可以告诉您的是 - 具有各种 Java EE 5 / Seam 2 和 Java EE 6 / Seam 3 应用程序的背景:
没有什么是 Java EE 6 / Seam 3 解决不了的,而且还有很多一切感觉更加成熟(例如,类型安全 CDI 比 Seam 2 基于字符串的组件要好得多,JBoss AS 7 比所有其他版本都好得多)。
但是:虽然 Seam 2 更像是满足您在企业 Web 应用程序中可能遇到的所有需求的一站式解决方案,但使用 Java EE 6 几乎肯定会因不同模块而遇到更多困惑 。
Seam 3 是一个很好的开始,但它还没有完全准备好投入生产,至少在所有部分都还没有准备好。因此,您将不得不处理仍然需要解决的问题和异常。这与 Seam 2.x 肯定是有区别的,在 Seam 2.x 中,道路感觉铺得很好。
没有与 Seam 2 的集成导航/页面流概念相当的东西。您要么必须使用 JSF 2 导航,要么集成 Drools 或类似的东西 - 您自己。
嵌套对话是 Seam 2 中您可能会喜欢的东西。CDI 中没有这样的东西 - 但 OpenWebBeans / CODI 提供了一个很好的解决方案作为 CDI 扩展。
所有 GUI 内容(pdf、邮件、报告)都在 Seam 3 中 - 但尚未 100% 准备就绪 (9/2011)。下一次这种情况将会改变 - 但现在,您正走在 alpha 和 beta 的路上。
话虽如此,我的建议是:
尽快切换到 Java EE 6 / CDI(并且有争议)。这是如此的未来。 :-)
What I can tell you - with a background of various Java EE 5 / Seam 2 and Java EE 6 / Seam 3 applications:
There is nothing that you cannot solve with Java EE 6 / Seam 3, and many things feel much more mature (e.g. typesafe CDI is way better than Seam 2 string-based components, JBoss AS 7 is so much better than all other releases).
But: While Seam 2 is more like a one-stop-solution for all requirements you might encounter in an enterprise web application, with Java EE 6 you'll almost certainly end up with more puzzling from different modules.
Seam 3 is an excellent start, but it's not exactly production-ready, at least not in all parts. So you will have to deal with problems and exceptions that still have to be solved. That's certainly a difference to Seam 2.x, where the road felt pretty good paved.
There is no equivalent to Seam 2's integrated navigation / pageflow concept. You either have to use JSF 2 navigation, or integrate Drools or something like this - on your own.
Nested conversations is something you might have liked in Seam 2. There is no such thing in CDI - but OpenWebBeans / CODI offers a nice solution as a CDI extension.
All the GUI stuff (pdf, mailing, reporting) is on its way in Seam 3 - but not 100% ready yet (9/2011). That will change in the next time - but right now, you're on your way with alphas and betas.
Having said this, here is my advice:
Switch to Java EE 6 / CDI as soon as possible (and arguable). It's so much the future. :-)
我也有同样的经历。在某些情况下,Java EE 还不够,而且它也不是有意的。所以就有了CDI扩展。几天前我了解到其他人也经历过同样的事情:
Java EE 满足您的所有需求
如果这太容易令人难以置信
如果您是 Seam2 用户,请使用 Seam3(我认为他们计划再次提供类似的东西 - 只是对话非常糟糕)并帮助他们获得它稳定,添加您错过的功能,...或切换到其他扩展。有很多,例如我们更喜欢MyFaces CODI,因为它非常稳定和快速,而且他们的对话概念更好。还有一个非常开放的社区,他们也提供了很多帮助,倾听想法,...
问题不是“什么”,而是“什么时候可以在扩展中使用”。我想一旦有人要求一项功能。
I experienced the same. Java EE is not enough in several cases and it wasn't intended to be. So there are CDI extensions. I learned some days ago that others experienced the same:
Java EE all you need
If its too easy to be true
If you are a Seam2 user, go with Seam3 (I think they plan to provide similar stuff again - just conversations are very poor) and help them to get it stable, add features you miss,... or switch to other extensions. There are a lot e.g. we prefer MyFaces CODI, because it's very stable and fast and their notion of conversations is better. There is also a very open community and they also help a lot, listen to ideas,...
The question is not "What" it is "When will it be available in an extension". I guess as soon as someone asks for a feature.