【问题标题】:Not able to deploy EJB in WebLogic server 12c无法在 WebLogic server 12c 中部署 EJB
【发布时间】:2012-04-10 03:11:04
【问题描述】:

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

当我使用管理控制台将此 jar 添加到 weblogic server 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>

【问题讨论】:

  • 各位,我需要帮助。

标签: java ejb weblogic jndi weblogic12c


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

    将应用程序部署为 jar 文件时,ejb-jar.xml 是必需的。正确的放置位置是在 jar 中的 META-INF 中。

    是的,注解确实不错,而且更易于维护。尝试将 ejb-jar.xml 保持在最小限度。

    我总是将我的应用程序打包在 EAR 中,并在其中包含 jars。在这种情况下,需要一个 application.xml 文件。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-16
        • 2012-06-17
        • 2013-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多