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