Question

Je suis en train de configurer un serveur JMS (de OpenJMS) dans une application de printemps et quand je parle des ressources en utilisant la notation « jms / <> je reçois un « nom » non lié exception.

Toute idée de ce manque?

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)

Le grain est défini comme suit:

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

Je la lib JMS dans le chemin de la classe et le serveur OpenJMS fonctionne.

Était-ce utile?

La solution

Dans le web.xml nous ne pouvions pas renvoyer le rôle d'interface (javax.jms.Topic), nous avons dû utiliser la classe exacte. Ce fut un problème avec OpenJMS et non avec Websphere.

Non autorisé:

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

permis:

<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