Я продолжаю бороться за приключения с Jboss и EJB 3.0.
Я присоединился к Spring 3.0 с EJB. У меня есть 3 модуля - веб-модуль с контроллерами Spring, модуль ejb с EJB-компонентами и Spring mogule с другими классами, такими как dao или некоторые помощники. Все в ухе.
Итак, в моем Spring Controller у меня есть следующий код:
@Controller
public class IndexController {
@EJB
PaymentRemote paymentRemote;
@RequestMapping(value = "/index")
public ModelAndView index() throws Exception {
ModelAndView mav = new ModelAndView("index/index");
paymentRemote.savePayment(123, "bla222");
paymentRemote.sayGoodbye();
return mav;
}
В моем модуле EJB у меня есть следующий bean-компонент с состоянием:
@Stateful
@Interceptors( SpringBeanAutowiringInterceptor.class)
public class PaymentRemoteImpl implements PaymentRemote{
@Autowired
ExampleService exampleService;
public void savePayment(long payment, String name) throws Exception {
exampleService.savePayment(123, "kk");
}
@Remove
public void sayGoodbye() {
System.out.println("I want to finish my task here!");
}
}
Каждая зависимость вводится правильно. Когда я тестирую этот код с bean-компонентами без состояния, он работает просто отлично. Когда речь заходит о бинах с состоянием, когда я вызываю метод sayGoodbye (), я не могу снова вызвать этот бин. Я получаю исключение:
javax.ejb.NoSuchEJBException: Could not find stateful bean: a74a2l-n1u5tx-gcwd0e6a-1-gcwd18fo-9h
Я не понимаю этой ситуации: / Я попросил контейнер удалить боб, но позже я хотел бы использовать его снова, но он хочет снова найти меня с тем же бобом. Я думал, что, хотя я попросил удалить это, это создаст по моему запросу снова.
Может ли кто-нибудь любезно помочь мне с моей проблемой? Я застрял.