2017-07-27 75 views
0

我們怎樣才能獲得EJB模塊名稱動態的JNDI對EAP 7 我們看着堆棧溢出here後得到的模塊名稱獲取EJB模塊名稱動態地對EAP JNDI 7

  • 我們不想在ejb-jar.xml中重寫。
  • 我們不想在maven中定製模塊名稱,所以它修復了 。
  • 我們也不看循環的循環,因爲我們目前 使用

    實施


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(); 

有一個更清潔的方式

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

回答

0

重寫EJB模塊名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> 

對於應用程序名稱application.xml中

將上述溶液有助於使應用程序的版本信息從它的依賴性分離例如在創建JNDI名稱來查找遠程EJB在EAP 7.

重寫使用應用程序的名稱