无法在WebLogic Server 12c中部署EJB

时间:2012-03-26 15:36:19

标签: java ejb weblogic jndi weblogic12c

我创建了一个EJB,创建了一个jar(包含必需的ejb-jar.xml和weblogic-ejb-jar.xml文件)。

当我将此jar添加到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>

3 个答案:

答案 0 :(得分:1)

与您的想法相反,不需要ejb-jar.xml和weblogic-ejb-jar.xml文件。作为主要部署描述符,它们是2004年的古代文物。

如果您重视自己的理智,也应删除ProductHome课程。这是一个EJB2工件,在这个时代完全和完全没必要。

要开始使用EJB,您只需要一个带有@Stateless注释的POJO:

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

将其装罐并部署。就这样。您不必显式命名您的bean(它将获得一个名称),您当然不必在某个XML文件中声明它的存在。

答案 1 :(得分:0)

将应用程序部署为jar文件时,必须使用ejb-jar.xml。把它放在正确的地方是在罐子里的META-INF。

是的,注释肯定很好,更容易维护。请将ejb-jar.xml保留为最小值。

我总是将我的应用程序打包到EAR中,里面装有jar。在这种情况下,需要一个application.xml文件。

听起来容器不能将jar识别为应用程序。检查ejb-jar.xml的位置或使用EAR包装。

答案 2 :(得分:0)

Oracle建议将独立EJB打包为EAR文件。 EJB描述符应位于ejb模块的META-INF内。 有关更多详细信息,请参阅此链接以获取EAR结构。 http://docs.oracle.com/cd/E24329_01/web.1211/e24368/splitcreate.htm#i1103260