【发布时间】:2017-02-09 16:06:28
【问题描述】:
我很难理解我应该如何处理在 Jboss EAP 7 实例上运行的 JTA 和 CDI。我可以通过注入来自容器的 UserTransaction 对象来手动获取事务,但是当我使用 @Transactional 注释该方法时,我得到一个关于没有可用事务的异常......我的问题是。是否缺少任何配置?我简要地阅读了也许我应该自己创建一个拦截器以使其工作,但我还没有找到任何一致的例子......
【问题讨论】:
-
我觉得这个问题没有足够的细节来获得比如何设置具有数据库连接的应用程序的完整 JEE 教程更好的答案。这超出了 StackOverflow 的范围。你能缩小你的问题范围吗?例如,您问“是否缺少任何配置”而没有提及您实际拥有的配置。或者粘贴任何可以告诉我们您是否按照您所说的正确操作的代码。
-
您是否做过任何会禁用自动交易的事情?
-
我们需要知道你把@Transactional注解放在哪里了。请分享您的代码。您不需要任何拦截器,因为“@Transactional”已经是一个拦截器绑定。
-
大家好,感谢您的回答....我试图在一个方法中使用@Transaction,当我使用注入的对象手动打开事务时,同样的方法可以正常工作。我的问题是,我应该怎么做才能让 Transactional 注释在一个简单的应用程序上工作?如果没有特殊配置,除了在 jboss 实例上运行它。所以我的应用程序有问题...
-
如果您发布代码,并且我们看到您如何注释您的 bean,我们可以提供帮助。问题是,如果您使用的是纯 CDI bean,
@Transactional需要一个拦截器实现,它不是开箱即用的。如果您使用 ejb bean,那么无论如何您都不需要@Transactional,至少如果您使用容器管理事务
标签: java cdi jta java-ee-7 jboss-eap-7