Question

Je rencontre des problèmes pour migrer de OC4J 10.1.2.3 à 10.1.3.1.4. Le problème concerne les applications ayant plusieurs EJB (toutes sont 2.1, pas d’EJB 3.0). Jdeveloper utilisera le fichier par défaut ejb-jar.xml (celui requis pour que Jdeveloper l’exécute sur son instance OC4J autonome) et le conditionnera dans chaque module JAR EJB, peu importe quoi. Cela a pour résultat que le serveur d'applications examine chaque module JAR EJB lors du déploiement et trouve le même fichier ejb-jar.xml N fois (où N = nombre de modules EJB). Cela génère des références EJB en double et interrompt toute recherche JNDI telle que: "java: comp / env / ejb / EJBName". Ainsi, le déploiement d'une application comportant 3 EJB, EJB1, EJB2 et EJB3, oblige le serveur de l'application à enregistrer 9 EJB au lieu de 3. c'est plutôt grave ...

Remarque secondaire: ils fonctionneront si le code de recherche JNDI de l'application Web est réfractoré en "ejb / EJBName". Ce n'est pas souhaitable cependant.

Était-ce utile?

La solution 2

Le problème était la référence multiple dans nos profils de déploiement. Nous avons été créer un profil de déploiement pour chaque EJB. Cela signifiait que chaque EJB avait son propre fichier ejb-jar.xml (ce fichier contenait une description de tous les EJBS du projet). Par conséquent, chaque fois que JDeveloper a créé un EJB, il a placé un descripteur de tous les EJBS dans chaque EJB généré, générant un nombre NxN de références. Par conséquent, Nx (N-1) références supplémentaires.

Maintenant, l’essentiel est que Oracle Application Server 10.1.2.3.0 et les suivants ne s’inquiètent pas de ces références en double. Cependant, comme nous pouvons le constater, la version 10.1.3.1.4 est une version bien différente et cela s’est rompu.

Notre solution: ne disposer que d’un profil de déploiement d’EJB contenant toutes les classes d’EJB et les POJO qu’ils utilisent. Rappelez-vous, avant qu’il n’existe 1 profil EJB pour chaque EJB ... Tout ce que cela permettait était de permettre à Jdeveloper (qui est de la foutaise IMHO) de correctement générer un EAR valide. C'est la combinaison de la merde de Jdeveloper et du serveur d'applications d'Oracle.

Autres conseils

Vous devriez consulter la documentation Oracle pour savoir quel est votre cas. Le Guide du développeur Oracle® Containers for J2EE Enterprise JavaBeans est un bon début Selon le manuel Oracle® Containers for J2EE Services, chapitre 2: Utilisation de JNDI lorsque vous utilisez le formulaire " ejb / EJBName " vous effectuez " local " Chercher. Si vous souhaitez utiliser le formulaire complet, cochez la case "Activation des recherches globales JNDI". section de la section "Utilisation de JNDI". chapitre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top