2012-01-10 72 views
4

我有4個模塊的企業應用程序項目。它部署在WLS 10.3.4上。我正在使用eclipse helios進行eclipse的oracle web工具的開發。 我的機器上的本地WLS作爲開發模式安裝。項目的WLS 10.3.4 - 在作用域xxx_EJB.jar中沒有名爲'xxx'的持久性單元。可用的持久性單元:[]

結構是這樣的:

xxx_EAR 
|-> xxx_JPA 
|-> xxx_EJB 
|-> xxx_EJBClient 
|-> xxx_WEB 

共同罐,用來翻過模塊在xxx_EAR/APP-INF/lib中

內部xxx_JPA是persistence.xml中有三個持久性單元,而在xxx_EJB中是類Bean,它們使用@PersistentContext來引用它們。

EJB version is 3.0 
JPA is 1.0 (Eclipselink 1.1.x) 

和一切工作正常本地在我的copmputer。 當我嘗試部署到測試WLS EAR文件我得到以下異常

Unable to deploy EJB: XxxFacadeImpl from xxx_EJB.jar: 

No persistence unit named 'xxx_EJB' is available in scope xxx_EJB.jar. Available persistence units: [] 
    at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:469) 
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199) 
    at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:518) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52) 
    at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159) 

...

唯一的區別,因爲我看到,服務器之間是處於安裝模式,測試WLS安裝爲生產模式。

你有什麼提示嗎?

在此先感謝!

回答

0

服務器的版本是否相同?如果將所有內容都放入EJB jar中的JPA jar中,那麼會發生什麼?

+0

如果我把EJB模塊它工作一切。如果我只有兩個模塊xxx_EJB和xxx_WEB。但我必須隔離層,所以我做了兩個模塊,JPA用於持久性,EJBClient用於接口。在這種情況下,我在測試服務器上部署ear時出錯。 – Kenny 2012-01-10 14:30:16

0

我有相同的錯誤,但相反。我可以將EAR部署到生產環境或從WebLogic控制檯部署,但我無法通過Eclipse Weblogic插件在本地部署。對我而言,工作是在EJB項目的構建路徑中更改javax.persistence_xxx.jar的版本。

在我的情況下,我從javax.persistence_1.xxx更改爲javax.persistence_2.xxx。

希望這有助於某人。在我尋求這個問題的解決方案時,來自coderance的下面的鏈接也幫助了我。

http://www.coderanch.com/t/578851/EJB-JEE/java/persistence-unit-named-scope-BL