2010-09-29 4 views
1

Je suis nouveau sur EJB3 et travaille sur un code existant.Weblogic Aucun bean de type [javax.persistence.EntityManager]

Nous utilisons weblogic10.3 et le code ci-dessous fonctionne très bien

@Stateless(mappedName="ProcessIssacIncomingMessage") 
@TransactionManagement(value=TransactionManagementType.CONTAINER) 
@TransactionAttribute(value=TransactionAttributeType.REQUIRED) 
@EjbRef(name="Database" jnod-name="Database") 

public class IncomingMessageBean implements IncomingMessageRemote, IncomingMessageLocal { 
... 
@Ejb 
private Database<Object> databaseBean; 

10.3 weblogic.jar a le paquet weblogic.ejbgen.EjbRef

Nous commutation maintenant vers weblogic10.3.1 et weblogic .jar n'est plus fourni avec le paquetage weblogic.ejbgen.

Alors, j'ai changé le code à ce (pas encore testé en 10.3.1)

@Stateless(mappedName="ProcessIssacIncomingMessage") 
@TransactionManagement(value=TransactionManagementType.CONTAINER) 
@TransactionAttribute(value=TransactionAttributeType.REQUIRED) 
@EjbRef(name="Database" jnod-name="Database") --- removed this line 


public class IncomingMessageBean implements IncomingMessageRemote, IncomingMessageLocal { 
... 
@Ejb(mappedName="Database") -- added the mapped name here. 
private Database<Object> databaseBean; 

Pour la compatibilité ascendante. Après avoir exécuté le code dans wl10.3 je reçois l'erreur

erreur est - javax.ejb.EJBTransactionRolledbackException: Exception EJB:: com.bea.core.repackaged.springframework.beans.factory.BeanCreationException: Dépendance échec d'injection: ne peut pas trouver la définition de haricots à propos de l'interface de classe javax.persistence.EntityManager; l'exception imbriquée est com.bea.core.repackaged.springframework.beans.factory.NoSuchBeanDefinitionException: Aucun haricot unique de type [javax.persistence.EntityManager] n'est défini: Aucun haricot de type javax.persistence.EntityManager; owner = com.bea.core.repackaged.springframework.context.support.GenericApplicationContext: nom d'affichage

Pourriez-vous aider, quoi ou comment je devrais refactoriser le code. OU qu'est-ce qui manque ici? Tellement que mon code est compatible avec 10.3 et 10.3.1 sans utiliser @EjbRef

Répondre

0

J'ai pensé que le code source n'était pas pour 10.3 mais une version antérieure de weblogic, où dans EjbRef a été fourni par weblogic dans weblogic.jar. Mais comme il semble après une certaine version 10.3.x probablement weblogic.ejbgen.EjbRef a été refactorisé à un autre pot que weblogic.jar

J'ai fait une explosion de tous les jars dans le dossier server/lib et trouvé que le même paquet est disponible dans wls-api.jar

Mon problème est résolu maintenant. Avant que je puisse trouver ceci, j'avais déjà enlevé la dépendance sur le code d'employer n'importe quels dossiers de jar spécifiques de weblogic.

Questions connexes