【问题标题】:Webpshere server is not gettin started after adding MDB configuration to ejb-jar xml将 MDB 配置添加到 ejb-jar xml 后,Websphere 服务器未启动
【发布时间】:2014-10-24 17:11:14
【问题描述】:

我已将 MDB 配置添加到 ejb-jar.xml 和 ibm-ejb-jar-bnd.xmi 文件,然后重新启动失败并抛出以下错误,如果我恢复我的更改,它开始正常工作。

错误消息:原因:java.lang.IllegalStateException: Parent Translator (EnterpriseBeansTranslator(entity|session|message-driven,841888302)) 没有找到“message-driven-destination”的子翻译器。

能否请您帮助我了解问题的根本原因。下面是添加的MDB配置。如果问题是由于xsd引起的,请帮助我??

<ejb-jar id="ejb-jar_1" version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">

<enterprise-beans> <message-driven id="MessageDriven_TestJMSMDBL"> <description>Message Driven Bean for JMS Listener TestJMSMDBL</description> <ejb-name>TestJMSMDBL</ejb-name> <ejb-class>com.pega.pegarules.internal.etier.mdb.PRJMSListenerBoot</ejb-class> <transaction-type>Container</transaction-type> <message-driven-destination id="MessageDrivenDestination_TestJMSMDBL"> <destination-type>javax.jms.Queue</destination-type> </message-driven-destination> <env-entry> <env-entry-name>PRListener</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>TestJMSMDBL</env-entry-value> </env-entry> <env-entry> <env-entry-name>UseCMT</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>true</env-entry-value> </env-entry> <ejb-local-ref id="EJBLocalRef_TestJMSMDBL_EngineBMTLocal"> <description/> <ejb-ref-name>ejb/EngineBMTLocal</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>com.pega.pegarules.internal.etier.interfaces.EngineLocalHome</local-home> <local>com.pega.pegarules.internal.etier.interfaces.EngineLocal</local> <ejb-link>EngineBMT</ejb-link> </ejb-local-ref> <ejb-local-ref id="EJBLocalRef_TestJMSMDBL_EngineCMTLocal"> <description/> <ejb-ref-name>ejb/EngineCMTLocal</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>com.pega.pegarules.internal.etier.interfaces.EngineLocalHome</local-home> <local>com.pega.pegarules.internal.etier.interfaces.EngineLocal</local> <ejb-link>EngineCMT</ejb-link> </ejb-local-ref> </message-driven> </enterprise-beans>

【问题讨论】:

    标签: jms websphere message-driven-bean ejb-2.x


    【解决方案1】:

    您的 MDB 定义不正确。你应该有类似下面的东西。应该是&lt;message-destination-type&gt; 而不是&lt;message-driven-destination&gt;

    <message-driven id="MyMDB">
        <ejb-name>MyMDB</ejb-name>
        <ejb-class>ejbs.MyMDBBean</ejb-class>
        <messaging-type>javax.jms.MessageListener</messaging-type>
        <transaction-type>Container</transaction-type>
        <message-destination-type>javax.jms.Queue</message-destination-type>
    </message-driven>
    

    这是示例绑定文件。但是您可以删除从文件驱动的消息的绑定,然后使用控制台安装它。您将能够在那里定义映射。之后您可以从控制台导出应用程序,然后您可以从那里提取正确的绑定文件。

    <?xml version="1.0" encoding="UTF-8"?>
    <ejbbnd:EJBJarBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ejb="ejb.xmi" xmlns:ejbbnd="ejbbnd.xmi" xmi:id="EJBJarBinding_1409479703640">
      <ejbJar href="META-INF/ejb-jar.xml#ejb-jar_ID"/>
      <ejbBindings xmi:type="ejbbnd:MessageDrivenBeanBinding" xmi:id="MessageDrivenBeanBinding_1409479703640" activationSpecJndiName="myActiveSpec" destinationJndiName="eis/as1">
        <enterpriseBean xmi:type="ejb:MessageDriven" href="META-INF/ejb-jar.xml#MyMDB"/>
      </ejbBindings>
    </ejbbnd:EJBJarBinding>
    

    【讨论】:

    • 我已更改 MDB 详细信息,如下所示,并抛出了一个新异常。原因:org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ResourceLoadException:IWAE0007E 无法在档案“prbeans.jar”中加载资源“META-INF/ibm-ejb-jar-bnd.xmi”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 2013-09-07
    • 2015-07-16
    • 1970-01-01
    • 2016-03-31
    • 2013-03-31
    相关资源
    最近更新 更多