Доступен ли переносимый синтаксис jndi (EJB3.1) на разных машинах? - PullRequest
1 голос
/ 23 марта 2011


Я читал о «Переносимых глобальных именах JNDI» в нескольких статьях, например, здесь и там, но я не смог понять, применяется ли этот синтаксис только для поиска входящих компьютеров (или, возможно, для поиска входящих серверов, если сервер кластеризован). Т.е. пытается ли он решить проблему поиска между модулями и приложениями на одном компьютере / сервере?
Потому что я продолжаю видеть примеры, ссылающиеся на эту функцию и использующие @Remote, которые, как я себе представляю, вполне могут встречаться на разных компьютерах / серверах.
Если бы он действительно разрешал только внутренние поиски на машине / сервере, я был бы признателен, если бы кто-то мог указать мне правильное направление относительно того, как использовать его с @Remote между серверами (я предполагаю, что где-то мне нужно поставить префикс хоста имя).
Спасибо,
Еффий

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

В этом случае вы можете использовать упоминание об этом в файле дескриптора, затем вы можете вставить его, используя @ EJB

@EJB(name="fooejbref")
private FooRemote fooRemote;

В пределах sun-web.xml:

<ejb-ref>
  <ejb-ref-name>fooejbref</ejb-ref-name>
  <jndi-name>corbaname:iiop:host2:3700#Foo</jndi-name>
</ejb-ref>

для получения более подробной информации, пожалуйста,пожалуйста, посмотрите этот URL http://glassfish.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB

1 голос
/ 13 апреля 2011

Компонент EJB можно вызвать с другого компьютера, поэтому существует аннотация @Remote. Как

    String host = "10.1.1.111";
    String port = "3700";

    Properties props = new Properties();
    props.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.sun.enterprise.naming.SerialInitContextFactory");
    props.setProperty("org.omg.CORBA.ORBInitialHost", host);

    props.setProperty("org.omg.CORBA.ORBInitialPort", port);

    InitialContext ctx = new InitialContext(props);
    TestService ejb = (TestService)ctx.lookup("java:global/XXX/XXX/TestEntityFacade!com.test.service.TestService");
    ejb.findAll();
...