Weblogic ejb-jar.xml, доступ к удаленным EJB-компонентам с помощью кластерных приложений дерева JNDI

Среда для приложений WebLogic 12cR2.

Мне трудно получить доступ к удаленным EJB-компонентам в applicationA из EJB в applicationB, развернутом на том же сервере weblogic и в том же кластере.

Скажем, есть набор EJB-компонентов, которые были упакованы в applicationA.ear, а другой набор EJB-компонентов был упакован в applicationB.ear. Они были развернуты на том же веб-логическом сервере EJBServer (прослушивать порт: 7003), а EJBServer принадлежит EJBCluster.

Я могу получить доступ к EJB-компонентам двух приложений из сервлетов на веб-уровне, развернутом в WEBServer (прослушивание по порту: 8080) в WEBCluster, используя клиент EJBs с информацией о хосте: порт и принципал / учетные данные без каких-либо проблем.

Context ctx = null;
Hashtable env = new Hashtable( );
env.put(Context.INITIAL_CONTEXT_FACTORY,weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL,"t3://ManagedServer1,ManagedServer2:7003");
env.put(Context.SECURITY_PRINCIPAL, "username");
env.put(Context.SECURITY_CREDENTIALS, "password");
ctx = new InitialContext(env);
AddressFacadeRemote remote = (AddressFacadeRemote)ctx.lookup(jndi);

Но сейчас. Мне нужно получить доступ к EJB, которые упакованы в applicationA из EJB в applicationB, который работает на одном сервере приложений, но в разных приложениях.

EJB в объявлении applicationB ejb-jar.xml выглядит так:

<?xml version="1.0" 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>EJBNoCoh</module-name>

<enterprise-beans>
    <session>
      ......
      <ejb-ref>
            <ejb-ref-name>ExperienceFacadeEJB</ejb-ref-name>
            <ejb-ref-type>Session</ejb-ref-type>
            <remote>com.longz.ozssc.rmi.ExperienceFacadeRemote</remote>
            <ejb-link>ExperienceFacadeEJB</ejb-link>
            <lookup-name>java:comp/env/applicationB/EJB/ExperienceFacadeEJB</lookup-name>
      </ejb-ref>
    </session>
</enterprise-beans>
</ejb-jar>

Я обнаружил, что ejb-jar.xml не поддерживает поиск внешних EJB во время выполнения с использованием аутентификации host:port и Principal/ Credential.

Мой вопрос: есть ли способ получить доступ к EJB-компонентам, которые развернуты на одном сервере приложений (в разных приложениях) в одном кластере из одного и того же уровня (уровня EJB)?

0 ответов

Другие вопросы по тегам