gpt4 book ai didi

java - JAX-WS、weblogic 中的容器管理事务

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

我正在尝试在网络服务中使用容器管理的事务,但未创建事务。我有这样的东西:

@WebService(...)
@Stateless
@TransactionManagment(TransactionManagmentType.CONTAINER)
public class ExampleService {

// EntityManager and other fields

@TransactionAttribure(TransactionAttributeType.REQUIRED)
public void test(String s){
// persist something with EntityManager
}
}

当我调用此方法时,我得到 javax.persistence.TransactionRequiredException:必须在事务上下文中调用方法 public abstract void javax.persistence.EntityManager.persist(java.lang.Object)。

我做错了什么?谢谢!

最佳答案

根据我的内存,“TransactionAttributeType.REQUIRED”意味着只有当当前线程的事务已经在进行时才应调用该方法(换句话说,“在事务上下文中调用”)。目前尚不清楚谁在您的案例中开始交易。如果没有人,那么你得到的异常就很有意义。

现在我不确定如何或目前是否有可能跨 Web 服务调用传播事务。即使可能,我也不认为这样做是特别好的主意。

也许您需要 TransactionAttributeType.REQURES_NEW 在您的情况下,以便容器在将控制权传递给您的注释方法之前启动事务?

关于java - JAX-WS、weblogic 中的容器管理事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8508564/

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