2011-12-09 67 views
2

我對TomEE 4.0.0嘗試簡單的JPA例子,我不能夠得到PersistenceContextType.EXTENDED工作TomEE 4 JPA問題

如果我讓我的會話bean無狀態和離開PersistenceContextType然後正常工作

@PersistenceContext(unitName = "xxx") 
private EntityManager entityManager; 

如果我把我的會話bean作爲無狀態,然後嘗試使用此

@PersistenceContext(unitName = "xxx", type = PersistenceContextType.EXTENDED)) 
private EntityManager entityManager; 

它給了我,同時部署一個錯誤,這是完全正常和交運集團有預期的。

但是現在,當我把我的bean作爲@Stateful,那麼它也給了我一個錯誤

Managed ejbs are not capable of using EntityManagers with EXTENTED persistence. Convert your bean to a Stateful ejb or update the "java:comp/env/com.testwebservice.TestJPAService/entityManager" PersistenceContext reference to PersistenceContextType.TRANSACTION. 

可以有一個人請大家幫忙,我真搞不清楚這個

+0

您確定,您的更改已被識別嗎?乾淨的版本可能有助於確保更改被選中。如果你仍然面對它,你能添加整個堆棧跟蹤嗎? – stratwine

+0

在旁註中,TomEE不在4.0版本。它與1.0-beta1發佈,它使用OpenEJB 4.0-beta1版本 – stratwine

回答

0

@Stateful擴展持久化上下文是在TomEE構建中以及在Java EE TCK中以多種方式進行了測試。

可能這是完全別的東西。我們竭盡所能,當你做出明顯的錯誤,你注意到的@StatelessPersistenceContextType.EXTENDED

不正確的組合望着它包含com.testwebservice.TestJPAService JNDI名稱,並鑑於這是@Stateless之前又改爲@Stateful警告你,我的猜測是這個豆也是一個@WebService這是非法的。 @Stateful豆類不能爲@WebService豆類。如果沒有適當的檢查來防止這個錯誤,我的猜測是這個bean實際上正在部署兩次;一次作爲@Stateful豆,一次作爲pojo @WebService。 Pojo Web服務是導致錯誤的服務。

如果是這個錯誤,我已經爲我們提交了一個JIRA來明確check that condition