2

JMSサーバー(OpenJMS)をSpringアプリケーションに構成しようとしていますが、「jms / <>」という表記を使用してリソースを参照すると、「名前」にバインドされていない例外が発生します。

何が欠けているのか手がかりはありますか?

javax.naming.NameNotFoundException: Name jms is not bound in this Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:768)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:138)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:779)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:138)

Beanは次のように定義されます。

<bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiTemplate" ref="jmsProvider"/>
    <property name="jndiName" value="jms/RefreshTopic_CF"/>
    <property name="resourceRef" value="true" />
</bean>

クラスパスにJMSlibがあり、openjmsサーバーが実行されています。

4

4 に答える 4

4

web.xml では、インターフェイス (javax.jms.Topic) として参照できませんでした。正確なクラスを使用する必要がありました。これは OpenJMS の問題であり、Websphere の問題ではありません。

禁止されている:

<resource-ref id="ResourceRef_125180">
    <description>Topic</description>
    <res-ref-name>jms/MyTopic</res-ref-name>

    <res-type>javax.jms.Topic</res-type>

    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>        
</resource-ref>

許可された:

<resource-ref id="ResourceRef_125180">
    <description>Topic</description>
    <res-ref-name>jms/MyTopic</res-ref-name>

    <res-type>org.exolab.jms.client.JmsTopic</res-type>

    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>        
</resource-ref>
于 2009-09-30T13:22:33.413 に答える
2

あなたのどちらかのようです

  • 春が見ているのと同じJNDIツリーを使用するようにOpenJMSを構成しませんでした-こちらをご覧ください
  • JNDI で間違ったパスを探しています。直感として、jndiName から「jms/」を削除します。
于 2009-08-18T13:13:37.520 に答える
0

私の場合、リソース、つまり jms/XXX を tomcat の server.xml から context.xml に移動する必要があり、Tomcat を再起動するとうまくいきました。

于 2017-04-05T15:28:26.700 に答える