2013-03-20 3 views
1

У меня проблема с поиском моего ejb. В сервлете все работает нормально, но мне нужно подключиться к ejb из удаленного klient.EJB lookup - Не удалось создать удаленное соединение

из развертываний журнала консоли:

java:global/easymenu-webappEAR/EasyMenu/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote 
java:app/EasyMenu/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote 
java:module/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote 
java:jboss/exported/easymenu-webappEAR/EasyMenu/CounterBean!sk.jbase.projects.easymenu.CounterBeanRemote 
java:global/easymenu-webappEAR/EasyMenu/CounterBean 
java:app/EasyMenu/CounterBean 
java:module/CounterBean 

я есть ejbmodule в веб-приложение (я не знаю, как отделить его)

адресности контекст:

public static InitialContext getInitialContext(String url) throws NamingException { 
    Properties properties = new Properties(); 

    properties.setProperty(Context.URL_PKG_PREFIXES, 
      "org.jboss.ejb.client.naming"); 
    properties.setProperty(Context.PROVIDER_URL, url); 
    properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); 
    properties.setProperty(Context.SECURITY_PRINCIPAL, "pch"); 
    properties.setProperty(Context.SECURITY_CREDENTIALS, "peterch"); 

    return new InitialContext(properties); 
} 

поиска:

  CounterBeanRemote cbr = (CounterBeanRemote) ServiceLocator 
        .getInitialContext("remote://localhost:8080").lookup("java:app/EasyMenu/CounterBean!" 
     + CounterBeanRemote.class.getName()); 

      System.out.println("Result: " + cbr.getMessage()); 

ИСКЛЮЧЕНИЕ

mar 20, 2013 10:27:04 PM org.xnio.Xnio <clinit> 
INFO: XNIO Version 3.0.3.GA 
mar 20, 2013 10:27:04 PM org.xnio.nio.NioXnio <clinit> 
INFO: XNIO NIO Implementation Version 3.0.3.GA 
mar 20, 2013 10:27:04 PM org.jboss.remoting3.EndpointImpl <clinit> 
INFO: JBoss Remoting version 3.2.3.GA 
javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.RuntimeException: Operation failed with status WAITING] 
    at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:36) 
    at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:121) 
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) 
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307) 
    at javax.naming.InitialContext.init(InitialContext.java:242) 
    at javax.naming.InitialContext.<init>(InitialContext.java:216) 
    at sk.jbase.projects.easymenu.client.EasyMenuClient.getInitialContext(EasyMenuClient.java:58) 
    at sk.jbase.projects.easymenu.client.EasyMenuClient.main(EasyMenuClient.java:38) 
Caused by: java.lang.RuntimeException: Operation failed with status WAITING 
    at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:89) 
    at org.jboss.naming.remote.client.NamingStoreCache.getRemoteNamingStore(NamingStoreCache.java:56) 
    at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateCachedNamingStore(InitialContextFactory.java:166) 
    at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateNamingStore(InitialContextFactory.java:139) 
    at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:104) 
    ... 6 more 
+0

У меня точно такой же .... –

ответ

0

В какой версии JBoss вы используете? В JBoss 7.1 удаленный порт по умолчанию - 4447, и вы должны использовать URL-адрес, следующий за java: jboss/exported /. Если вы используете «org.jboss.ejb.client.naming», вам нужен префикс «ejb:» для URL-адреса и свойств, которые обычно находятся в файле jboss-ejb-client.properties.

0

У меня была та же проблема с последней ночной сборкой JBOSS AS 7.2. Когда я только что вернул jboss-client.jar в моем пути к классу, к более старой версии, он начал работать как шарм.

После исправления URL-адреса и поиска выше и jboss-client.jar, это должно сделать это.