目前我们部署到JBoss 4.2,因为这是部署在我们集群上的应用服务器。该应用程序目前只使用JBoss的连接池处理通过JNDI和JBossWeb的嵌入式Tomcat以及几个JBoss的Tomcat阀门(特别是RewriteValve,我们自己很难做到)。
JBoss对我来说似乎有些过分,我们应该切换到直接的Tomcat还是留在JBoss有什么好处? Tomcat是否更好地与Eclipse集成?
答案 0 :(得分:6)
如果您没有使用JBoss的任何高级功能而且您不打算这样做,那么使用纯嵌入式Tomcat可能会更好。这样,如果在Tomcat中找到安全修复程序,则只需升级单个嵌入式组件并继续。 JBoss明显更大,因此更难升级。
如果您在JBoss中使用的只是JMS或JNDI或其他可以作为Tomcat中单独的第三方组件轻松嵌入的东西,那么请务必删除JBoss并转移到嵌入式Tomcat。
什么时候应该坚持使用JBoss?当使用JBoss让您的生活变得如此简单以至于升级JBoss的额外工作值得付出努力。这对许多人来说都是如此。听起来你的情况并非如此。
至于与Eclipse更好地集成,我希望它们都能很好地与Eclipse集成。我使用MyEclipse,它支持JBoss和Tomcat。所以这可能取决于Eclipse的版本以及您正在使用的插件。
答案 1 :(得分:1)
如果您只需要JMS,我会选择Tomcat或Jetty,如果您不需要app-server托管事务提供程序来处理不仅仅是JDBC的事务(例如跨越JMS + JDBC的事务)
虽然您可以在JBoss之类的应用程序服务器之外执行JTA和JMS,但我在尝试让JTA跨越Tomcat下的JMS和JDBC时遇到了非常复杂的经历。也许这是ActiveMQ的早期发布,但它确实在一个非常重要的项目中吃了几个月。对于像JBoss这样的Java EE服务器提供的基础结构,可以说一些东西,尤其是。当你需要JTA与XADataSources。试图用独立组件重新创建它是令人困惑的。
顺便说一下,如果你有选择的话,我会考虑Jetty而不是Tomcat。就Tomcat和Eclipse集成而言,这里有很多选择。我使用(有点自定义)插件调用Eclipse的Sysdeo Tomcat插件。标准方法是使用类似WTP的东西。我使用Sysdeo Tomcat插件,因为它似乎具有最低的开销。另一种选择是使用Jetty Eclipse插件 - 再次,我发现Jetty几乎在所有方面都优于Tomcat。
答案 2 :(得分:0)
您之后与Eclipse进行了哪种集成?我相信有些插件可以进行某种集成(例如Sysdeo Eclipse Tomcat Launcher plugin),但我总是觉得如果需要的话,最好只在调试模式下启动Tomcat - 而且这很容易。
至于是否值得坚持JBoss:如果你不需要这个功能,它可能不值得。在Tomcat中有很多方法可以进行连接池,具体取决于您使用的其他方法。 (例如,如果你使用Hibernate和Spring,那么各种连接池都可以很好地工作。)
尽管Tomcat提供了自己的JNDI实现 - 按照the Tomcat 5.5 docs。
有一个合理的“精益和平均”堆栈还有很多东西可以说 - 不是在性能方面,而是在理解应用程序中发生的事情以及简化部署方面。
答案 3 :(得分:0)
根据您正在尝试做的事情,您可能还会考虑Jetty。
答案 4 :(得分:0)
您可以尝试这样做: http://www.atomikos.com/Publications/J2eeWithoutApplicationServer - 如果您需要网络层,可以使用轻量级网络容器和Wicket。
这些组合将为您提供前所未有的Java / Java EE生产力。
HTH 盖