Ошибка при запуске проекта Java EE с Jboss и Wildfly 9.x

У меня ошибка при запуске моего проекта, он правильно развернут, но у меня есть эта ошибка

javax.naming.NoInitialContextException: необходимо указать имя класса в свойстве среды или системы, либо в качестве параметра апплета, либо в файле ресурсов приложения: java.naming.factory.initial в javax.naming.spi.NamingManager.getInitialContext (Неизвестный источник)

вот мой основной код:

try {
        Context context = new InitialContext();
        UserServicesRemote userservicesremote = (UserServicesRemote) context.lookup("behealthy-ear/behealthy-ejb/UserServices!services.UserServicesRemote");
    } catch (NamingException e) {
        e.printStackTrace();
    }

Мой канонический адрес верен: введите здесь описание изображения


person hela    schedule 12.10.2016    source источник
comment
Где именно находится фрагмент кода, который вы используете? Вы говорите, что основной код — это клиентское приложение, пытающееся подключиться к удаленному EJB на сервере?   -  person Gimby    schedule 13.10.2016
comment
да Это клиентское приложение, я пытаюсь подключиться к своему удаленному EJB   -  person hela    schedule 15.10.2016


Ответы (3)


Предложение: Возможно, вам следует добавить jboss-client.jar в вашу клиентскую среду. ../бин/клиент/

person ArdenL_Liu    schedule 13.10.2016

это исключение (NamingException) указывает на то, что имя службы неверно. Когда ваш сервер развернут, вы можете увидеть в журнале имена развернутых служб. Например:

java:global/backend-ear/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal
java:app/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal
java:module/UserBOEJB!org.backend.bo.UserBOLocal
java:global/backend-ear/backend-ejb/UserBOEJB
java:app/backend-ejb/UserBOEJB
java:module/UserBOEJB

Вы можете использовать первую строку вашего журнала (глобального) для поиска.

person Gaalvarez    schedule 13.10.2016
comment
мое имя JNDI правильное, и был снимок экрана с именем jndi, когда я запускаю сервер. - person hela; 15.10.2016
comment
вы попробовали первый маршрут: context.lookup(java:global/behealthy-ear/behealthy-ejb/UserService!services.UserServicesRemote); - person Gaalvarez; 17.10.2016

Ошибка не из фактического поиска, но она не может правильно инициализировать JNDI-систему.

Если у вас есть автономный клиент, вам нужно добавить файл jndi.properties следующим образом:

java.naming.factory.url.pkgs=org.jboss.ejb.client.naming

и такой файл jboss-ejb-client.properties:

remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

Вы должны добавить jboss-client.jar в путь к классам и использовать правильное имя JNDI в пространстве имен ejb:-, а не то, которое находится в пространстве имен java: из файла журнала. Это выглядит так:

ejb:backend-ear/backend-ejb/UserBOEJB!org.backend.bo.UserBOLocal
person Erhard Siegl    schedule 16.10.2016