Top / J2EE / XDoclet / TIPS集

JMSなどの設定を出力する

Queueにメッセージを送るServletのクラスコメントは以下のようになります。

@web.servlet name="JMSSendMsgServlet" display-name="JMSSendMsgServlet"
@web.servlet-mapping url-pattern="/JMSSendMsgServlet"
@web.resource-ref name="jms/JMSSampleCF"
                  type="javax.jms.QueueConnectionFactory" auth="Container"
                  scope="Shareable"
@web.resource-ref name="jms/JMSSampleQ" type="javax.jms.Queue"
                  auth="Container" scope="Shareable"
@jboss.resource-ref jndi-name = "queue/JMSSampleQ" res-ref-name =
                    "jms/JMSSampleQ"
@jboss.resource-ref jndi-name = "QueueConnectionFactory" res-ref-name
                    ="jms/JMSSampleCF"

これでweb.xmlはServletの設定の他に

<resource-ref >
   ↓ ソースコード上で lookup("java:comp/env/jms/JMSSampleCF"); でルックアップする
   <res-ref-name>jms/JMSSampleCF</res-ref-name>           <- name="jms/JMSSampleCF"
   <res-type>javax.jms.QueueConnectionFactory</res-type>  <- type="javax.jms.QueueConnectionFactory"
   <res-auth>Container</res-auth>                         <- auth="Container"
   <res-sharing-scope>Shareable</res-sharing-scope>       <- scope="Shareable"
</resource-ref>
<resource-ref >
  ↓ ソースコード上で lookup("java:comp/env/jms/JMSSampleQ"); でルックアップする
   <res-ref-name>jms/JMSSampleQ</res-ref-name>            <- name="jms/JMSSampleQ"
   <res-type>javax.jms.Queue</res-type>                   <- type="javax.jms.Queue"
   <res-auth>Container</res-auth>                         <- auth="Container" 
   <res-sharing-scope>Shareable</res-sharing-scope>       <- scope="Shareable"
</resource-ref>

が出力されます。またjboss-web.xmlは

<resource-ref>
   <res-ref-name>jms/JMSSampleQ</res-ref-name>     <- res-ref-name = "jms/JMSSampleQ"
   ↑ lookup("java:comp/env/jms/JMSSampleQ");
   <jndi-name>queue/JMSSampleQ</jndi-name>         <- jndi-name = "queue/JMSSampleQ"
   ↑ 実際のコンテナに設定されるJNDI名。
</resource-ref>
<resource-ref>
   <res-ref-name>jms/JMSSampleCF</res-ref-name>    <- res-ref-name ="jms/JMSSampleCF"
   ↑ lookup("java:comp/env/jms/JMSSampleCF");
   <jndi-name>QueueConnectionFactory</jndi-name>   <- jndi-name = "QueueConnectionFactory"
   ↑ 実際のコンテナに設定されるJNDI名。
</resource-ref>

が出力されます。

従って、コンテナ上には ConnectionFactory?QueueConnectionFactory?、Queueはqueue/JMSSampleQが設定されている必要がありますが、QueueConnectionFactory?はあらかじめ存在するようで、queue/JMSSampleQは以下のコードを ${install_root}/server/default/deployjms/jbossmq-destinations-service.xml に書いておけばよいです。

<mbean code="org.jboss.mq.server.jmx.Queue"
  name="jboss.mq.destination:service=Queue,name=JMSSampleQ">
  <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>

この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / J2EE / XDoclet / TIPS集

現在のアクセス:9179


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS