簡體   English   中英

JAX-WS中的容器管理事務,weblogic

[英]Container-managed transaction in JAX-WS, weblogic

我正在嘗試在webservice中使用容器管理的事務,但是沒有創建事務。 我有類似的東西:

@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,所以Container在將控制傳遞給你帶注釋的方法之前啟動事務?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM