Я создаю приложение с EJB и Spring 3. У меня есть три модуля maven - пружинные банки, баннер EJB и веб-часть. В веб-части я хочу называть мой сеанс сеанса EJB. А вот код этого:Интеграция EJB3 с пружиной
@Controller
public class IndexController {
@EJB
PaymentRemote paymentRemote;
}
Я также файл контекста приложения, с содержанием:
<jee:local-slsb id="paymentRemote" jndi-name="ejb/myBean"
business-interface="net.learntechnology.ejb.PaymentRemote"/>
и
<bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor">
<property name="alwaysUseJndiLookup" value="true"/>
В моем модуле EJB I имеют интерфейс:
@Local
public interface PaymentRemote {
}
К сожалению, когда я развернуть его на JBoss как 5 я получаю следующее сообщение об ошибке:
Error creating bean with name 'paymentRemote': Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: ejb not bound.
Я видел много примеров в сети и все настроены так. Я застрял в этом ... Может ли кто-нибудь помочь мне в этом? Я был бы более чем благодарен!
Конечно, во всех * Удаленные имена должны быть локальными, я забыл переименовать его. – Agata
Вы уверены, что EJB развернут? Пойдите в JBoss JMX Console, найдите объект 'JNDIView' и вызовите его метод' list'. Если ваш EJB присутствует на 'ejb/myBean', он должен появиться здесь. – skaffman
Хм теперь есть такой объект в этой консоли. Это объясняет ошибку, но как мне ее связать, чтобы я мог вызывать сеанс EJB из моего контроллера? – Agata