Не удается развернуть EJB на сервере 12c WebLogic - PullRequest
0 голосов
/ 26 марта 2012

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

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

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>

Ответы [ 3 ]

1 голос
/ 31 марта 2012

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

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

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

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

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

0 голосов
/ 24 апреля 2014

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

0 голосов
/ 14 июля 2012

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

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

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

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

...