2015-08-17 3 views
0

Использование Jboss AS 7.1.1 Final, я пытаюсь вызвать локальный EJB (3.1) через JNDI.Jboss AS 7.1.1 Final Local JNDI EJB Invocation

Мой Локальный EJB является:

@Stateless(mappedName = "Services") 
@LocalBean 
public class Services implements ServicesLocal { 
.....// scary stuffs here 
} 

Мой интерфейс услуги является:

@Local 
public interface ServicesLocal { 
.... // Some powerfull stuffs here 
} 

Я пытаюсь вызвать это EJB выше, как это:

private ServicesLocal getLocalEJB() throws NamingException { 
     log.info("\n\n\n\n\n\n\n\n ################## Getting the ServicesLocal"); 
     InitialContext context = new InitialContext(); 
     return (ServicesLocal) context.lookup("ejb:/global/docs/docs-ejb-0.1/Services!com.mycompany.docs.local.ServicesLocal"); 
    } 

Это ошибка, которую я получаю при вызове этого кода выше:

############ Получение услугLocal

15: 36: 10,437 INFO [org.jboss.ejb.client] (http-localhost-127.0.0.1-8080-1) JBoss версия EJB Client 1.0.5.Final 15: 36: 10456

ОШИБКА [STDERR] (HTTP-локальный-127.0.0.1-8080-1) java.lang.IllegalStateException: Нет EJB приемник для обработки [APPNAME: , modulename: global, distinctname: docs] комбинация для контекста вызова [email protected] 15: 36: 10,457 ОШИБКА [stderr] (http-localhost-127.0.0.1-8080-1)^Iat org.jboss.ejb.client.EJBClientContext.requireEJBReceiver (EJBClientContext.java:584)

И это журнал JNDI, когда Jboss 7.1.1 Final boot. Имея EJB, что я хочу, чтобы вызвать:

15: 07: 07975 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC обслуживание резьбы 1-7) JNDI привязок для сессионного компонента имени Услуги по развертыванию блок subdeployment "DOCS-EJB-0.1.jar" развертывания "docs.ear" заключаются в следующем:

java:global/docs/docs-ejb-0.1/Services!com.mycompany.docs.local.ServicesLocal 
java:app/docs-ejb-0.1/Services!com.mycompany.docs.local.ServicesLocal 
java:module/Services!com.mycompany.docs.local.ServicesLocal 
java:global/docs/docs-ejb-0.1/Services!com.mycompany.docs.services.Services 
java:app/docs-ejb-0.1/Services!com.mycompany.docs.services.Services 
java:module/Services!com.mycompany.docs.services.Services 

Я думаю, что мой context.lookup("ejb:/global/docs/docs-ejb-0.1/Services!com.mycompany.docs.local.ServicesLocal") неправильно. Что я могу сделать, чтобы исправить это и вызвать мой локальный EJB с помощью JNDI?

ответ

0

Вы пытались использовать то, что JBoss вам сообщает?

context.lookup("java:global/docs/docs-ejb-0.1/Services!com.mycompany.docs.local.ServicesLocal")

Ваш EJB хранится в java пространстве имен, а не в ejb один.

+0

Да, я попытался скопировать и вставить эту строку. Такое же сообщение об ошибке –

Смежные вопросы