gpt4 book ai didi

java - @Resource UserTransaction 为空

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:53 25 4
gpt4 key购买 nike

我有 Restful Webservice 实现。我在哪里通过注入(inject) @Resource 使用 UserTransaction 对象维护事务。而且我可以看到 UserTransaction 对象似乎为空。这背后的原因可能是什么?

import javax.transaction.UserTransaction;

@Path("User")
public class UserImpl {

@Resource
private UserTransaction tx;

@Context
HttpServletRequest httpServletRequest;

public void doAction() {
try {
tx.begin();
// do the work...
} finally {
tx.commit();
}
}
}

最佳答案

背后的原因是UserTransaction只能注入(inject)到支持事务的托管组件。在 Java EE 中支持事务的常用组件是 EJB bean。为此,请使用 @Stateless 注释您的 UserImpl 类。 UserTransaction 表示你想手动管理你的事务,所以你必须用@TransactionManagement 告诉容器。像这样:

@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
@Path("User")
public class UserImpl

关于java - @Resource UserTransaction 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31072100/

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