Использование JBoss для подключения EJB - PullRequest
0 голосов
/ 23 января 2020

Я использую сервер JBoss для размещения своего EJB.

Сервер запущен, я вижу главную страницу, когда я go на localhost: 8080 (Добро пожаловать в AS 7, Ваше приложение JBoss Сервер 7 запущен.)

В моем клиентском проекте я пытаюсь подключиться так:

    private static Calculette lookupRemoteStatelessCalculator() throws NamingException {    
    final Context context = new InitialContext();
    context.addToEnvironment("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
    context.addToEnvironment("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
    context.addToEnvironment("java.naming.provider.url", "localhost:8080");

    return (Calculette) context.lookup("ejb/stateless/calculette");
}

I go это сообщение об ошибке при запуске:

Could not obtain connection to any of these urls: localhost:8080 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to retrieve stub from server localhost:8080 [Root exception is java.io.EOFException]]

Я пытаюсь использовать jndi.properties, но я получаю ошибку, которую не понимаю, когда я помещаю параметр непосредственно в контекст, все нормально ..

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 23 января 2020

Поиск JNDI работает на другом порту. По умолчанию вам придется использовать:

 Properties jndiProps = new Properties();
 jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
 jndiProps.put(Context.PROVIDER_URL,"remote://localhost:4447");
 // create a context passing these properties
 Context context = new InitialContext(jndiProps);

Имейте в виду, что для разных версий JBoss / Wildfly существуют разные подходы.

См. Также: https://docs.jboss.org/author/display/AS72/Remote+EJB+invocations+via+JNDI+-+EJB+client+API+or+remote-naming+project

...