Frage

Ich versuche, einen JMS-Server (OpenJMS) in eine Feder-Anwendung zu konfigurieren und wenn ich die Ressourcen unter Verwendung der Notation siehe „jms / <> Ich erhalte einen‚Namen‘nicht Ausnahme gebunden.

Jede Ahnung, was fehlt?

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)

Die Bohne ist definiert als:

<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>

Ich habe das JMS-lib in Klassenpfad und der OpenJMS Server ausgeführt wird.

War es hilfreich?

Lösung

In der web.xml konnten wir verweisen die nicht als Schnittstelle (javax.jms.Topic) können wir die genaue Klasse verwenden musste. Das war ein Problem mit OpenJMS und nicht mit Websphere.

Nicht erlaubt:

<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>

erlaubt:

<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>
scroll top