gpt4 book ai didi

java - Arquilian 无法通过多个部署注入(inject) UserTransaction

转载 作者:行者123 更新时间:2023-12-01 10:50:22 26 4
gpt4 key购买 nike

我有这门课:

@RunWith(Arquillian.class)
public class myIT {
@Inject
private UserTransaction utx;

@Resource(mappedName="java:/jdbc/myDS")
private DataSource dataSource;

@Deployment(name="DeployOne", order = 1)
public static Archive<?> deployOne() throws FileNotFoundException {
//Build and return the file
}

// @Deployment(name="DeployTwo", order = 2)
public static Archive<?> deployTwo() throws FileNotFoundException {
//Build an empty file return the file
return = ShrinkWrap.create(WebArchive.class, "deployTwo.war");
}

@Before
public void setup() throws Exception {
utx.begin();
//Do things with utx
}
}

如您所见,部署 2 已被注释,因此我的部署工作正常。如果我取消注释 @Deployment 注释,则不再注入(inject) utx,并且出现空指针异常。

我错过了什么吗?为什么添加新部署会导致我的 UserTransaction 不再被注入(inject)?

最佳答案

您必须将 UserTransaction 作为资源注入(inject),因为它是在 CDI 容器外部管理的。

private @Resource UserTransaction transaction;

查看此Tutorial .

关于java - Arquilian 无法通过多个部署注入(inject) UserTransaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33955189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com