メッセージ駆動型Beanを既存のJavaEEアプリケーションに追加しようとしています。デプロイメント記述子ejb-jar.xmlを変更中です。私のejb-jar.xmlは次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD EnterpriseJavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="ejb-jar_1" version="2.1" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
...
<enterprise-beans>
...
<session>
...
<service-ref> ... <service-ref>
</session>
<message-driven>
<ejb-name>Services</ejb-name>
<ejb-class>com.pega.pegarules.internal.etier.mdb.PRJMSListenerBoot</ejb-class>
<transaction-type>Container</transaction-type>
<message-driven-destination id="MessageDrivenDestination_Services">
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
...
</ejb-jar>
アプリケーションをWebsphereにデプロイしようとすると、次のエラーが発生します。
[10/16/12 17:20:05:671 CDT] 00000024 webapp I com.ibm.ws.webcontainer.webapp.WebApp log SRVE0292I: Servlet Message - [isclite#isclite.war]:.action: ApplicationDeploymentDetailForm was null.Creating new form bean and storing in session
[10/16/12 17:20:19:524 CDT] 00000046 wtp W Parse exception for [ public ID [ null ] and system ID [ null ] ] [ java.lang.IllegalStateException: Parent Translator (EnterpriseBeansTranslator(entity|session|message-driven,1696032023)) did not find a Child Translator for "message-driven-destination". ]
xmlファイルを数日間試した後、上記のejb-jar要素で指定された名前空間を削除すると、message-driven-destinationは正しく変換されますが、要素は同じ子トランスレータが見つからないというエラーで失敗することがわかりました。
したがって、これは名前空間の競合の問題であると思います。誰かが私がこれを解決するのを手伝ってくれるなら、私は賞賛します。
前もって感謝します。