首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Weld TransactionServices,如何注册?

Weld TransactionServices,如何注册?
EN

Stack Overflow用户
提问于 2012-07-10 13:11:40
回答 2查看 1.1K关注 0票数 1

我正在尝试使用CDI/Weld和JEEUnit进行junit测试。我在启动时收到以下消息:

代码语言:javascript
复制
189 [main] INFO org.jboss.weld.Bootstrap - WELD-000101 Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously.

稍后,当我调用em.flush()时,Entitymanager会失败,因为它们期望事务处于活动状态。有没有轻量级的事务实现可以用于JUnit测试?

编辑:

我最终使用了GuiceRunner。这太简单了.http://fabiostrozzi.eu/2011/03/27/junit-tests-easy-guice/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-10 14:16:10

您可以在单元测试中使用openEJB,这应该会像预期的那样工作。

:只要你在测试中需要一个事务(也就是“平台服务”),我就会开始称之为集成测试--在这种情况下,我推荐使用Arquillian进行轻量级的容器上测试。您将能够针对您自己的基础架构进行测试,并使用真实世界的设置。事务。

更新:我忽略了你已经在使用JEEUnit了。这使得我的回答变得相当过时。

票数 2
EN

Stack Overflow用户

发布于 2012-07-10 23:25:26

要通过INFO消息,您需要在类路径上具有jta api,但这样您就会遇到一个问题,即稍后实际上没有一个真正的事务。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11406971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档