Я хотел бы узнать, как работать с EJB, поэтому я начал читать «Enterprise JavaBeans 3.1 6th edition». После создания первого примера (глава примера FirstEJB) у меня проблема с NameNotFoundException
. Насколько я знаю, это означает, что EJB не отображается/не существует на контейнере. Проект кажется очень простым, но я не знаю, как решить проблему. Любая помощь? Проект можно найти здесь https://github.com/pepuch/EJB-ch04-firstejb. Так я работал с этим проектом.Первый EJB - NameNotFoundException
- Я построил
ejb
проект с использованиемgradle clean build
команды и развернутым создалejb-1.0.jar
на сервер с помощью GlassFish администратора сайта. - Я начал тестирование клиентского модуля, используя
gradle clean test
. Этот тест показывает исключениеNameNotFoundException
.
В нескольких словах проект состоит из двух подпроектов:
- EJB - проект создает EJB JAR
- клиента - проект содержит только один модульный тест, который пытается создать и использовать EJB
[ОБНОВЛЕНИЕ]
Я начал заявку на jboss serve r и он работает. Вот как выглядит код для JBoss:
// класс, который использует EJB
Context context = new InitialContext();
context = new InitialContext();
final String JNDI_NAME_CALC = "SimpleCalculatorBean/remote";
CalculatorCommonBusiness calc = (CalculatorCommonBusiness)context.lookup(JNDI_NAME_CALC);
calc.add(2,3,4,5);
// jndi.properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
Я до сих пор не может начать приложение на GlassFish сервере.
1. Я проверил журнал, и я нашел 'Портативные имена JNDI для EJB SimpleCalculatorBean: [java: global/ejb-1.0/SimpleCalculatorBean, ...]', поэтому это правильно. Если вы можете, проверьте исходный код на github. 2. Насколько я понимаю, вы - класс bean-классов реализуете интерфейс, поэтому он должен быть правильным. Можете ли вы написать, что вы имеете в виду? – pepuch
Все еще без успеха на сервере. Я тестировал приложение на сервере jboss, и он работает над ним. – pepuch
Вы изменили интерфейс на Remote? –