我将开发一个Web服务,它将公开两个操作。这些操作将从数据库中查询/更新数据。
请建议我使用EJB进行数据库操作以及我将获得哪些优势?
或
在我的网络服务中,我直接使用JPA,如下所示,并创建我的实体并坚持它们
@PersistenceUnit private EntityManagerFactory emf;
@Resource
private UserTransaction utx;
请回答有利有弊。
此致 姆兰
答案 0 :(得分:0)
这两种方法都是有效的,并且受Java EE支持,因此根据我的经验,这只是 design 推荐:
永远不要将EJB操作直接暴露为Web服务,它只会增加运行时的复杂性。如果您将EJB作为Web服务发布,则容器仍必须使用内部 Web服务servlet 将其包装,该内部 Web服务servlet (隐式)将包含内部Web服务映射的WAR紧密耦合到您的ejb-jar(取决于在应用服务器产品上)。此外,在日常操作中很难调试。
我建议仅使用标准Java EE功能而不使用任何其他库:
@WebService
注释)。它委托了一个功能实现。我们称之为POJO WS-POJO 。实现该功能的两个选项:
今天,我选择#1选项...我的2美分