失败的Glassfish部署 - “引用错误:此捆绑包没有名称为[ClientBean]的bean”

时间:2012-10-09 19:41:08

标签: glassfish ejb remote-client

我正在尝试从此页面运行示例:GlassFish-to-GlassFish Remote EJB Invocation

但是当我尝试在glassfish上部署客户端时出现此错误(“asadmin> deploy client-ejb.jar”): “部署app [client-ejb]时出现异常:引用错误:此bundle没有名称为[ClientBean]的bean”

我需要帮助,谢谢。

3 个答案:

答案 0 :(得分:3)

我在尝试部署应用程序时遇到了类似的问题(部署应用程序[my-app]时出现异常:引用错误:此包没有名称为[myBeanFacade]的bean)。但很奇怪,但需要解决所有问题这是在构建类别树下转到[my-app]的属性,选择编译并勾选编译保存选项。重新部署我的申请和中提琴!! NB [my-app]包含2个ejb jar和一个Web应用程序,其中一个ejbs是Web应用程序中的库。

答案 1 :(得分:0)

发生此问题是因为该人忘了在ServiceIF.class中添加client-ejb.jar引用。

执行命令:

jar cvf client-ejb.jar test/ServiceIF.class test/ClientIF.class test/ClientBean.class META-INF/glassfish-ejb-jar.xml

获取新的.jar,它会起作用。

答案 2 :(得分:0)

如果使用的是部署描述符,则两个描述符文件中的EJB名称都应该相同。

 <ejb-jar>
  <enterprise-beans>
    <session>
      <ejb-name>Hello</ejb-name>
      <home>com.ejb.test.HelloHome</home>
      <remote>com.ejb.test.HelloObject</remote>
      <ejb-class>com.ejb.test.HelloBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
    </session>
  </enterprise-beans>
  <assembly-descriptor>
    <container-transaction>
      <method>
        **<ejb-name>Hello</ejb-name>**
        <method-name>*</method-name>
      </method>
      <trans-attribute>Required</trans-attribute>
    </container-transaction>
  </assembly-descriptor>
</ejb-jar>



<glassfish-ejb-jar>
    <enterprise-beans>
        <ejb>
            **<ejb-name>Hello</ejb-name>**
            <jndi-name>jndi/Hello</jndi-name>
        </ejb>
    </enterprise-beans>
</glassfish-ejb-jar>