javax.naming.NameNotFoundException при отправке GET сервлету - PullRequest
0 голосов
/ 03 ноября 2018

Я иду через этот урок, показывающий пример 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?

...