2010-03-25 4 views
0

Следующий код используется IPMBaseBean.class для доступа к удаленному интерфейсу.Поиск удаленного интерфейса не распознается в JBoss

Object obj = iniCtx.lookup("java:/comp/env/ejb/ODIControllerSessionEJB"); 

В jboss-web.xmljndi-name является refered ниже

<ejb-ref-name>ejb/ODIControllerSessionEJB</ejb-ref-name> 
<jndi-name>jnp://vwhq5275.whq.ual.com:6200/ODIControllerSessionEJB</jndi-name> 

Ошибка:

Naming exception 
javax.naming.NameNotFoundException: comp not bound.. 

Просьба предложить по этому вопросу.

+0

Вы пытаетесь получить доступ к EJB на удаленной машине? – skaffman

ответ

0

При запуске JBoss, он показывает имена Global JNDI, как показано ниже:

15:26:47,394 INFO [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI: 

     hrms/AccountSummarySessionBean/local - EJB3.x Default Local Business Interface 
     hrms/AccountSummarySessionBean/local-com.cc.hrms.bl.accounts.generalaccount.session.AccountSummarySessionBeanLocal - EJB3.x Local Business Interface 

Затем вы можете поиск с помощью этой конвенции

поиска подписи - «HRMS/AccountSummarySessionBean/local-com.cc .hrms.bl.accounts.generalaccount.session.AccountSummarySessionBeanLocal»

initialContext.lookup(ProjectConstants.PROJECT_NAME+className.getSimpleName().substring(0, className.getSimpleName().lastIndexOf("Local")) + "/local-" + className.getName()); 

Я работаю в JBoss-5 & этой конвенции работ хорошо для меня.