我们正在从头开始构建Web服务,直接决定使用哪种Java EE技术。
看起来Apache-cxf是一个很好的选择作为前端。对于访问数据库,Hibernate看起来是一个很好的候选者。两者之间的业务逻辑怎么样?应该使用EJB3吗?
如果不使用EJB3,Tomcat是否适合作为App服务器?如果使用EJB3,Tomcat仍然很好吗?或者,成熟的Java EE服务器更好,例如GlassFishV3?
答案 0 :(得分:3)
使用EJB Lite配置文件的Glassfish v3.1就是您想要的。
它带有JPA(基于Eclipselink),它带有WebServices(通过Metro的JAX-WS),它带有本地EJB会话bean(EJB-Lite配置文件的一部分)。这使您可以将EJB放入WAR中,从而简化部署。这样就可以在会话bean级别进行事务划分,非常好。
这是整个堆栈,你不需要安装任何东西,配置任何东西,从任何地方下载罐子(当然是保存Glassfish)。这一切都是建立起来的。
添加NetBeans IDE,您将获得整个工具包,包括Glassfish。
答案 1 :(得分:3)
基本上,您提出的问题是大多数Java开发人员在其职业生涯的某些方面所做的事情。我应该使用一个完整的应用程序服务器或一个更简单的容器,上面有一些开源堆栈。 几年前,我建议你选择Tomcat(或Jetty),Spring和任何你觉得舒适的开源堆栈。较短的周转时间将弥补将所有内容放在一起所需的额外时间,您的解决方案将更加“轻量级”且简单。 今天,Java EE 6 Web Profile非常简单轻巧,GlassFish具有良好的部署和发布时间,而EJB 3.1远不是它曾经的怪物(比如EJB 2)。你只需启动你的应用服务器,几乎所有东西都已经为你设置了(与使用“自己组装”弗兰肯斯坦容器相比,可能会花费一些额外的“服务层开销”)。 因此,这是个人品味的问题,您的应用程序可能不需要EJB(或Spring),或者它可能需要它(并且您可以始终使用Tomcat + Open EJB或EasyBeans作为GlassFish的替代品)。 作为一名经验丰富的Java EE开发人员迁移到Java EE 6,我可以说我也想知道哪种方法最好(参见Jetty 8 + EJB 3.1 + JTA + CDI + JPA 2 stack?)。 只是不要给你一个空洞的答案,目前我倾向于GlassFish(正如我所说,设置和周转时间非常令人满意,我认为使用GlassFish集群扩展比使用Tomcat更容易扩展+ Apache +负载均衡+ MemCached / Terracota /等等)。但是,作为个人意见,请考虑(以及您收到的针对Tomcat 7或GlassFish的任何其他答案)。