我创建了一个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>
答案 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