我们正在从头开始构建一个web服务,从决定使用什么Java技术开始。
看起来Apache-cxf是一个不错的前端选择。对于访问数据库,Hibernate看起来是一个很好的候选者。那么介于两者之间的业务逻辑呢?应该使用EJB3吗?
如果没有使用EJB3,那么Tomcat是一个很好的应用服务器吗?如果使用了EJB3,那么Tomcat还好吗?或者功能齐全的Java服务器更好,例如GlassFishV3?
发布于 2011-05-01 07:32:01
基本上,您提出的问题是大多数Java开发人员在职业生涯中都会问到的问题。我应该选择一个成熟的应用服务器,还是一个更简单的容器,上面有一些开放源码堆栈。几年前,我建议您使用Tomcat (或Jetty)、Spring和任何您觉得舒服的开源堆栈。较低的周转时间将补偿将所有内容组合在一起所需的额外时间,您的解决方案将更加“轻量级”和简单。今天,JavaEE6Web Profile非常简单和轻量级,GlassFish有一个不错的部署和发布时间,EJB3.1远不是曾经的怪物(比如EJB2)。你只需要启动你的App Server,几乎所有的东西都已经为你准备好了(与使用一个“自己组装”的Frankenstein容器相比,代价可能是一些额外的“服务层开销”)。因此,这是个人喜好的问题,您的应用程序可能不需要EJB (或Spring),也可能需要它(并且您可以始终使用Tomcat + Open EJB或EasyBeans作为GlassFish的替代方案)。作为一名迁移到JavaEE6的经验丰富的Java开发人员,我可以说我也想知道哪种方法是最好的(请参阅Jetty 8 + EJB 3.1 + JTA + CDI + JPA 2 stack?)。我不想给你一个空的答案,目前我倾向于GlassFish (正如我所说的,设置和周转时间是非常令人满意的,我认为使用GlassFish集群进行扩展要比使用Tomcat + Apache + Load Balance + MemCached / Terracota /诸如此类的方式容易得多)。但将此(以及您收到的任何其他倾向于Tomcat7或GlassFish的回答)视为个人意见问题。
发布于 2011-05-01 06:59:25
使用EJB Lite概要文件的Glassfish v3.1就是您想要的。
它带有JPA (基于Eclipselink),它带有WebServices (通过Metro的JAX-WS),它带有Local EJB session beans ( EJB-Lite profile的一部分)。这使您可以将EJB放入您的WAR中,从而简化部署。这为您提供了会话bean级别的事务划分,非常好。
它是整个堆栈,你不需要安装任何东西,配置任何东西,从任何地方下载jars (当然,除了Glassfish )。这都是建立起来的。
添加Glassfish集成开发环境,您将获得完整的工具包,包括NetBeans。
https://stackoverflow.com/questions/5845169
复制相似问题