Weblogic 12: Определить конкретное имя JNDI для EJB - PullRequest
0 голосов
/ 04 января 2019

Используя 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 нет конкретной конфигурации для этого компонента.

Моя цель - развернуть EJB под следующим именем EJB: /ejb/myapp/server/MyBean

Я могу добиться этого, используя аннотацию @weblogic.javaee.JNDIName("/ejb/myapp/server/MyBean") на MyBean, но аннотация относится только к Weblogic. Я пытаюсь найти способ определить JNDI-имя без какой-либо конкретной аннотации Weblogic. Конкретная конфигурация XML в порядке.

Имя JNDI должно быть именем, которое я упомянул, потому что на него ссылаются из другого приложения, где по техническим причинам практически невозможно изменить ссылку на имя JNDI.

Есть идеи, как настроить глобальное имя JNDI для этого EJB?

1 Ответ

0 голосов
/ 12 июня 2019

Вам необходимо добавить имя класса вашего интерфейса в привязке 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>
...