2017-07-27 1 views
0

Comment pouvons-nous obtenir le nom du module EJB dynamiquement pour JNDI sur EAP 7 nous avons examiné le poste de débordement de pile here pour obtenir le nom du moduleObtenir le nom du module EJB dynamiquement pour JNDI sur EAP 7

  • Nous ne veut pas remplacer dans ejb-jar.xml.
  • Nous ne voulons pas personnaliser le nom du module dans maven, donc il est corrigé.
  • Nor nous recherchons sont en boucle à boucle que nous sommes actuellement mis en œuvre

URL url = clazz.getResource(""); 
    String [] strArray = url.getPath().split("/"); 
    for (int i=0; i<strArray.length; i++){ 
     if (strArray[i].contains(".jar")){ 
       moduleName = strArray[i].substring(0, strArray[i].length() - 4); 
       break; 
     } 
} 

jndiName = "java:app/"+moduleName+"/"+clazz.getSimpleName()+"!"+clazz.getCanonicalName(); 

Y at-il un moyen plus propre

java:app/<module-name>/<bean-name>!<fully-qualified-bean-interface-name> 

Répondre

0

Redéfinition nom du module EJB en utilisant

ejb-jar.xml

<?xml version="1.1" encoding="UTF-8"?> 
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd" 
     version="3.1"> 
    <module-name>my-module</module-name> 
</ejb-jar> 

Pour nom de l'application nom de l'application primordial d'utilisation dans application.xml

La solution ci-dessus contribue à rendre l'application des informations de versioning séparé de sa dépendance par exemple, tout en créant le nom JNDI pour rechercher EJB à distance EAP 7.