Tomcat 7上的CDI - 它有意义吗?

Ale*_*ühl 18 tomcat cdi java-ee-6 jsf-2

如果我可以选择,我将JBoss 7用于使用JSF 2和CDI的Java EE 6项目.

但有时候,客户项目的环境或多或少都会被设置 - 所以在一种情况下我们只限于Tomcat(6或7或7).

所以,我读了几篇关于在Tomcat中使用CDI(例如WELD)和JSF 2的文章,这表明这样做基本没问题.

不过,我的问题是 - 它有意义吗?或者servlet容器是不是这种架构的合适环境?有没有人使用Tomcat + CDI获得比演示项目更多的经验?

提前致谢!

jan*_*oth 13

好问题,首先:)

将企业应用程序部署到servlet引擎是例如Spring的主要场景,因此它当然是可能的.但是你会知道Spring是一个完整的API和配置文件生态系统,而不是你简单地放在服务器上并且玩得开心的几个JAR.

我在Tomcat 7上和Weld&JSF玩了很多,而且效果还不错.但HelloWorldOnTomcat.java与真实客户的真实应用程序之间存在重大差异.我相信你知道这一点.

我会说你可以在相对较短的时间内编译一个像样的设置.CDI和JSF都不会有问题.但是,根据您的具体要求,您将不得不处理开箱即用的Tomcat未涵盖的其他方面.安全性,群集,故障转移,消息传递,异步性以命名一些问题(和事务,如评论中所述).

如果你(或多或少)精通这样的要求,你即将开展的项目相当放松,不应该控制下一个火星任务 - 我肯定会试一试.

另一方面,如果您了解这些要求,我会寻找(a)Java EE应用服务器上的设置,或(b)Tomcat上的另一个堆栈.

  • 我将只添加Tomcat + JSF和CDI未涵盖的功能列表,即事务管理.如果您的应用程序不是只读的,那么您可能需要事务处理,因此您需要使用外部框架(您可以使用spring)或者自己动手.由于JEE6容器至少与Tomcat一样轻,尝试推动JEE6(TomEE可以是一个很好的起点;)) (5认同)