Я иду через этот урок, показывающий пример Stateful EJB . Я создал структуру проекта точно так же, как показано в руководстве, но вместо JPA я использую Hibernate, поэтому у меня нет файла persitence.xml в StatefulSessionBeansEJB-> ejbModule-> META-INF, но у меня есть файл hibernate.cfg.xml в ejbModule. Вместо Glassfish я использую Wildfly 10 для развертывания. Кроме того, после того, как я получил исключение именования, я добавил код в ejb-jar.xml, и теперь он выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd" version="3.2">
<display-name>StatefulSessionBeansEJB </display-name>
<enterprise-beans>
<session>
<ejb-name>CartBean</ejb-name>
<business-local>com.jcg.enterprise.ejb.Cart</business-local>
<ejb-class>com.jcg.enterprise.ejb.CartBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<ejb-client-jar>StatefulSessionBeansEJBClient.jar</ejb-client-jar>
</ejb-jar>
В конце урока есть URL для добавления товара в корзину:
http://localhost:8080/StatefulSessionBeansTest/ShoppingCartServlet?product=ram
Когда я его использую - я получаю исключение именования, которое ссылается на код в сервлете, где JNDI используется для получения ресурса:
cartBean = (Cart) ic.lookup("java:global/StatefulEjbEAR/StatefulSessionBeansEJB/CartBean!"
+ "com.jcg.enterprise.ejb.Cart");
Я не понимаю, в чем здесь проблема. Может ли кто-нибудь сэкономить мне время на чтение о JNDI? Или это проблема Wildfly?