Weblogic 12:为 EJB 定义特定的 JNDI 名称



使用 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 绑定中添加接口的类名:

<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>

最新更新