Невозможно найти Weblogic11 - PullRequest
0 голосов
/ 11 мая 2011

Я использую Weblogic 11g, EJB3.0.

Я пытаюсь сделать простой поиск из одного развертывания в другое на той же машине.Но безуспешно.

Это код:

В одном развертывании это целевой класс:

 @CallByReference
 @Stateless (mappedName = "ejb/SyncOperatorsBean")
  @Local ({SyncOperatorsBeanLocal.class})
  @Remote ({SyncOperatorsBeanRemote.class})
  @JNDIName("ejb/SyncOperatorsBean") //added


  public class SyncOperatorsBean implements SyncOperatorsBeanLocal,SyncOperatorsBeanRemote  
 ...

Теперь во втором развертывании, вот как я делаюпоиск для достижения первого развертывания:

    SyncOperatorsBeanRemote SyncOperatorsBean = (SyncOperatorsBeanRemote) context
                      .lookup("ejb/SyncOperatorsBean#com.mirs.sbngenerate.beans.SyncOperatorsBeanRemote");

            SyncOperatorsBean.executeSyncOperation();

Это исключение:

  javax.naming.NameNotFoundException: While trying to lookup 'ejb.SyncOperatorsBean#com.mirs.sbngenerate.beans.SyncOperatorsBeanRemote' didn't find subcontext 'SyncOperatorsBean#com'. Resolved 'ejb'; remaining name 'SyncOperatorsBean#com/mirs/sbngenerate/beans/SyncOperatorsBeanRemote'
at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)

Теперь я могу видеть bean-компонент SyncOperatorsBean в JNDI TREE консоли.Но все же есть вышеупомянутое исключение.

Я не могу использовать Injection, поскольку вызывающий класс находится вне контейнера (внутри кварцевого задания).

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

Я исправил проблему, сняв аннотацию @JNDI.и настройте команду поиска следующим образом:

 SyncOperatorsBeanRemote SyncOperatorsBean =
             (SyncOperatorsBeanRemote) context
             .lookup("ejb/SyncOperatorsBean#com.mirs.sbnsync.beans.SyncOperatorsBeanRemote");
             SyncOperatorsBean.executeSyncOperation();

более того, мне пришлось добавить jar целевого класса в каталог lib сервера (странно, но это то, что я должен был сделать)

0 голосов
/ 11 мая 2011

Посмотрите на дерево JNDI для управляемых серверов, на которых развернут EJB, и посмотрите, сможете ли вы его найти.Кроме того, вы используете URL-адрес Сервера администрирования или управляемого сервера, на котором развернут EJB?

...