Доступ к EJB-методам из класса действий, определенного в структурах - PullRequest
0 голосов
/ 17 марта 2012

У меня есть два проекта, определенных в Eclipse.Одним из них является проект EJB (3.0), а другим - динамический веб-проект.

Я определил сессионный компонент без сохранения состояния с именем LoginAuthenticator и создал два локальных и удаленных интерфейса для него.В моем проекте EJB я определил файл JNDI.properties как

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099

. Я могу развернуть файл JAR на JBoss 5.0.0. После развертывания

* я получаю следующий вывод на консоль1007 *

Теперь из другого веб-проекта я определил класс действия LoginAction, который будет обращаться к открытым методам моего сессионного компонента.Исходный контекст создается как

props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.put(javax.naming.Context.PROVIDER_URL,"jnp://localhost:1099");
props.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");

Я вызываю удаленный метод как

LoginAuthenticatorRemote loginAuthenticator = (LoginAuthenticatorRemote) context.lookup("LoginAuthenticator/remote");

Когда я запускаю второй проект на Tomcat 6.0, я получаю следующее сообщение об ошибке

javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:1099 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 connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.SocketException: Permission denied: connect]]]

Значение порта в jmx-console для службы = Именование равно 1099 Значение RmiPort в jmx-console для службы = Именование равно 1098 И RmiBindAddress, и BindAddress в jmx-console для службы = Имена - 127.0.0.1

Что может быть причиной ошибки, которую я получаю?Что еще я должен настроить для этого?Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 20 марта 2012

Я получил решение для этого.Мой брандмауэр блокировал запросы на этот адрес и порт JNDI, после его отключения соединение теперь работает.

...