Не удалось развернуть EJB на сервере WebLogic 12c

Я создал EJB, создал его банку (содержащую необходимые файлы ejb-jar.xml и weblogic-ejb-jar.xml).

когда я добавляю эту банку на сервер weblogic 12c, используя консоль администратора, я получаю следующую проблему:

Issues were encountered while parsing this deployment to determine module type. Assuming this is a library deployment.

Из-за этого мой ejb не отображается в дереве jndi. Поэтому я не могу выполнить поиск jndi. Пожалуйста, исправьте мою ошибку.

ejb-jar.xml-

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar id="ejb-jar_ID">
    <display-name>ProductManager</display-name>
    <enterprise-beans>
    <session>
    <ejb-name>Product</ejb-name>    
    <home>rohit.ProductHome</home>
    <remote>rohit.ProductRemote</remote>
    <ejb-class>rohit.ProductBean</ejb-class>    
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>  
    </enterprise-beans>
    <ejb-client-jar>ProductManagerClient.jar</ejb-client-jar>

</ejb-jar>

weblogic-ejb-jar.xml-

<?xml version=“1.0? encoding=“UTF-8??>
<weblogic-ejb-jar

xmlns=“http://www.bea.com/ns/weblogic/90? xmlns:j2ee=“http://java.sun.com/xml/ns/j2ee” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-ejb-jar.xsd”>

<welogic-enterprise-bean>
<ejb-name>Product</ejb-name>
<jndi-name>Product</jndi-name>
<stateless-session-descriptor></stateless-session-descriptor>
</welogic-enterprise-bean>
</weblogic-ejb-jar>

person Rohit Elayathu    schedule 26.03.2012    source источник
comment
Пожалуйста, ребята, мне нужна помощь здесь.   -  person Rohit Elayathu    schedule 27.03.2012


Ответы (3)


Вопреки тому, что вы думаете, файлы ejb-jar.xml и weblogic-ejb-jar.xml не требуются. В качестве основных дескрипторов развертывания они являются древними артефактами 2004 года.

Ваш класс ProductHome также должен быть удален, если вы цените свое здравомыслие. Это артефакт EJB2, который совершенно и совершенно не нужен в наше время.

Чтобы начать работу с EJB, все, что вам нужно, это POJO с аннотацией @Stateless:

@Stateless
public class ProductBean {
    // ...
}

Соберите это и разверните. Это все. Вам не нужно явно называть свой компонент (он получит имя), и вам, конечно же, не нужно объявлять его существование в каком-либо XML-файле.

person Arjan Tijms    schedule 31.03.2012

ejb-jar.xml является обязательным при развертывании приложения в виде файла jar. Правильное место для его размещения находится в META-INF в банке.

Да, аннотации определенно хороши и их легче поддерживать. Попробуйте сделать это, оставив файл ejb-jar.xml минимальным.

Я всегда упаковываю свои приложения в EAR с банками внутри. В этом случае необходим файл application.xml.

Похоже, что контейнер не распознает банку как приложение. Проверьте положение файла ejb-jar.xml или используйте упаковку EAR.

person Eva Troels    schedule 14.07.2012

Oracle рекомендует упаковывать даже автономные компоненты EJB в файл EAR. Дескрипторы EJB должны находиться внутри META-INF модуля ejb. См. эту ссылку для получения более подробной информации о структуре EAR. http://docs.oracle.com/cd/E24329_01/web.1211/e24368/splitcreate.htm#i1103260

person user3566274    schedule 23.04.2014