0

我创建了一个 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”&gt;

<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>
4

3 回答 3

2

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

如果你重视你的理智,你的ProductHome班级也应该被删除。这是一个 EJB2 工件,在这个时代完全没有必要。

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

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

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

于 2012-03-31T08:08:51.653 回答
0

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

于 2014-04-23T20:47:58.437 回答
0

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

是的,注解肯定很好,而且更容易维护。通过将 ejb-jar.xml 保留为最小来尝试此操作。

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

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

于 2012-07-14T12:14:25.823 回答