Weblogic 12:为 EJB 定义特定的 JNDI 名称
Weblogic 12: Define specific JNDI Name for EJB
使用 WLS 12,我有以下 EJB 定义:
@Stateless
public class MyBean implements MyInterface { ... }
@Remote
public interface MyInterface { ... }
我还有以下weblogic-ejb-jar.xml
定义:
<weblogic-enterprise-bean>
<ejb-name>MyBean</ejb-name>
<enable-call-by-reference>true</enable-call-by-reference>
<jndi-binding>
<jndi-name>/ejb/myapp/server/MyBean</jndi-name>
</jndi-binding>
</weblogic-enterprise-bean>
ejb-jar.xml
没有针对此 bean 的特定配置。
我的目标是在以下 EJB 名称下部署 EJB:/ejb/myapp/server/MyBean
我可以使用 MyBean
上的注释 @weblogic.javaee.JNDIName("/ejb/myapp/server/MyBean")
来实现此目的,但该注释特定于 Weblogic。我试图找到一种方法来定义 JNDI 名称,而无需任何 Weblogic 特定注释。不过具体 XML 配置没问题。
JNDI 名称必须是我提到的名称,因为它是从另一个应用程序引用的,由于技术原因实际上不可能更改 JNDI 名称引用。
知道如何为此 EJB 配置全局 JNDI 名称吗?
您需要在 jndi 绑定中添加您的接口的 class 名称:
<weblogic-enterprise-bean>
<ejb-name>MyBean</ejb-name>
<enable-call-by-reference>true</enable-call-by-reference>
<jndi-binding>
<class-name>org.package.MyInterface</class-name>
<jndi-name>/ejb/myapp/server/MyBean</jndi-name>
</jndi-binding>
</weblogic-enterprise-bean>
使用 WLS 12,我有以下 EJB 定义:
@Stateless
public class MyBean implements MyInterface { ... }
@Remote
public interface MyInterface { ... }
我还有以下weblogic-ejb-jar.xml
定义:
<weblogic-enterprise-bean>
<ejb-name>MyBean</ejb-name>
<enable-call-by-reference>true</enable-call-by-reference>
<jndi-binding>
<jndi-name>/ejb/myapp/server/MyBean</jndi-name>
</jndi-binding>
</weblogic-enterprise-bean>
ejb-jar.xml
没有针对此 bean 的特定配置。
我的目标是在以下 EJB 名称下部署 EJB:/ejb/myapp/server/MyBean
我可以使用 MyBean
上的注释 @weblogic.javaee.JNDIName("/ejb/myapp/server/MyBean")
来实现此目的,但该注释特定于 Weblogic。我试图找到一种方法来定义 JNDI 名称,而无需任何 Weblogic 特定注释。不过具体 XML 配置没问题。
JNDI 名称必须是我提到的名称,因为它是从另一个应用程序引用的,由于技术原因实际上不可能更改 JNDI 名称引用。
知道如何为此 EJB 配置全局 JNDI 名称吗?
您需要在 jndi 绑定中添加您的接口的 class 名称:
<weblogic-enterprise-bean>
<ejb-name>MyBean</ejb-name>
<enable-call-by-reference>true</enable-call-by-reference>
<jndi-binding>
<class-name>org.package.MyInterface</class-name>
<jndi-name>/ejb/myapp/server/MyBean</jndi-name>
</jndi-binding>
</weblogic-enterprise-bean>