4 votes

WLS 10.3.4 - Aucune unité de persistance nommée 'xxx' n'est disponible dans la portée xxx_EJB.jar. Unités de persistance disponibles : []

J'ai un projet d'application d'entreprise avec 4 modules. il est déployé sur WLS 10.3.4. j'utilise eclipse helios pour le développement avec oracle web tools for eclipse. WLS local sur ma machine est installé en mode développement.

La structure du projet est la suivante :

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

Les jars communs, qui sont utilisés dans tous les modules, se trouvent dans xxx_EAR/APP-INF/lib.

Dans xxx_JPA se trouve persistence.xml avec trois unités de persistance, et dans xxx_EJB se trouvent des classes, des beans, qui utilisent @PersistentContext pour s'y référer.

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

et tout fonctionne bien localement sur mon copmputer. Lorsque j'essaie de déployer le fichier EAR sur le WLS de test, j'obtiens l'exception suivante

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)

...

La seule différence, comme je le vois, entre les serveurs est dans le mode d'installation, le WLS de test est installé en mode Production.

Avez-vous un indice ?

Merci d'avance !

0voto

James Points 18355

Les serveurs ont-ils la même version ? Que se passe-t-il si vous mettez tout ce qui est dans le jar JPA dans le jar EJB, cela fonctionne-t-il alors ?

0voto

nishad kamdar Points 43

J'ai eu la même erreur mais en sens inverse. Je peux déployer l'EAR vers une production ou déployer à partir de la console WebLogic sans problème mais je ne peux pas déployer localement via le plugin Eclipse Weblogic. Ce qui avait fonctionné pour moi était de changer la version de javax.persistence_xxx.jar dans le chemin de construction du projet EJB.

Dans mon cas, je passe de javax.persistence_1.xxx à javax.persistence_2.xxx.

J'espère que cela aidera quelqu'un. Dans ma recherche d'une solution à ce problème, le lien ci-dessous de coderance m'a également aidé.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X