跨远程EJB调用的事务

时间:2015-09-17 12:28:41

标签: java java-ee jpa jboss ejb

编辑:我自己想出了问题的第一部分 - 为了避免关闭我的问题并为第二部分打开一个新问题,我回收了这个问题并提供了访问同一个应用程序服务器上的远程EJB的链接: github example, thanks to PiotrNowicki

我有战争和耳朵。 Ear包含@Stateful EJB,对某些数据库操作使用PersistenceContext.EXTENDED。扩展此Context以访问Persistence-bean之外的实体中的Lazy-fetched列表。

WAR有一个JAX-RS REST接口,使用@Stateless Sessionbeans实现,它也可以对其他数据源执行简单操作。它们不需要扩展的上下文,因此它们使用常规的CMT。

然而,WAR中的Bean需要调用EAR的EJB。

如果我只是将项目合并到一个EAR中并通过@EJB注入bean,则CMT无法与扩展持久性上下文交互。这是预期的,参见JPA规范7.6.3。 (@Stateless bean将常规PersistenceContext附加到事务,扩展上下文不接受)

所以我拆分了两个服务,现在需要一个服务接口进行交互。

我的问题是:

1)远程EJB调用是否解决了Transaction-Problem,或者JBOSS的行为是否像Bean一样本地并尝试将Extended persistencecontext添加到本地事务中 - 导致同样的问题?

0 个答案:

没有答案