18

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

但有时,客户项目的环境或多或少是设置好的——所以在一种情况下,我们仅限于 Tomcat(6 个或可能 7 个)。

因此,我阅读了几篇关于在 Tomcat 中使用 CDI(例如 WELD)和 JSF 2 的文章,这表明这样做基本上没有问题。

不过,我的问题是——这有意义吗?还是 servlet 容器不适合这种架构?有没有人有任何使用 Tomcat+CDI 的经验而不是演示项目?

提前致谢!

4

2 回答 2

13

好问题,首先:)

将企业应用程序部署到 servlet 引擎是例如 Spring 的主要场景,所以这当然是可能的。但是您会知道 Spring 是一个完整的 API 和配置文件生态系统,而不是您简单地放在服务器上并从中获得乐趣的几个 JAR。

我在 Tomcat 7 上使用 Weld & JSF 玩了很多次,效果非常好。但是 HelloWorldOnTomcat.java 与面向真实客户的真实应用程序之间存在重大差异。我相信你已经意识到了这一点。

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

如果您(或多或少)精通此类要求,并且您即将进行的项目相当轻松,并且不应该控制下一个火星任务-我当然会尝试一下。

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

于 2012-08-27T10:44:02.900 回答
4

看看 Apache Tomee:

Apache TomEE,发音为“Tommy”,是一个全 Apache Java EE 6 Web Profile 认证的堆栈,其中 Tomcat 是其中的佼佼者。Apache TomEE 由一个普通的 Apache Tomcat zip 文件组装而成。我们从 Tomcat 开始,添加我们的 jars 并压缩其余部分。结果是 Tomcat 添加了 EE 功能 - TomEE。

于 2013-02-18T15:45:44.877 回答