在 EAP 7 上为 JNDI 动态获取 EJB 模块名称
Getting EJB module name dynamically for JNDI on EAP 7
我们如何为 EAP 7 上的 JNDI 动态获取 EJB 模块名称
我们已经查看了堆栈溢出 here 上的 post 以获取模块名称
- 我们不想在 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>
使用
覆盖 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 名称以在 EAP 7 中查找远程 EJB 时。
我们如何为 EAP 7 上的 JNDI 动态获取 EJB 模块名称 我们已经查看了堆栈溢出 here 上的 post 以获取模块名称
- 我们不想在 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>
使用
覆盖 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 名称以在 EAP 7 中查找远程 EJB 时。