3

Tibco EMS JMS キューへの接続の作成 (および読み取り) に問題があります。

<beans>
    <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
        <property name="environment">
            <props>
                <prop key="java.naming.factory.initial">com.tibco.tibjms.naming.TibjmsInitialContextFactory</prop>
                <prop key="java.naming.provider.url">tcp://ems-dit-am-uat-1.app.xxx.net:30055</prop>
            </props>
        </property>
    </bean>

    <bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiTemplate" ref="jndiTemplate" /> <property name="jndiName"
        value="DRDRFIQueueConnectionFactory" /> </bean>

    <bean id="jmsDestinationResolver"
        class="org.springframework.jms.support.destination.JndiDestinationResolver">
        <property name="jndiTemplate" ref="jndiTemplate" />
        <property name="cache" value="true" />
    </bean>

    <bean id="destination" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiTemplate" ref="jndiTemplate" />
        <property name="jndiName" value="Q.NY.DERIV.DRD.RFI" />
    </bean>

    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="jmsConnectionFactory" />
        <property name="destinationResolver" ref="jmsDestinationResolver" />
        <property name="defaultDestination" ref="destination" />
    </bean>


    <bean id="jmsReceiver" class="com.csfb.fao.rds.rfi.application.DRDReceiverTst">
        <property name="jmsTemplate">
            <ref bean="jmsTemplate" />
        </property>
    </bean>

</beans>

私が得ている例外は次のとおりです。

javax.naming.AuthenticationException: 許可されていません: com.tibco.tibjms.naming.TibjmsContext.lookup(TibjmsContext.java:668) で無効な名前またはパスワード [ルート例外は javax.jms.JMSSecurityException: 無効な名前またはパスワード] です。 tibco.tibjms.naming.TibjmsContext.lookup(TibjmsContext.java:489) で javax.naming.InitialContext.lookup(InitialContext.java:392) で org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:154) でorg.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:87) で org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152) で org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178) org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95) で org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105) org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:201) で org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:187) で org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory .invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) ... 12 もっと見るorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) で invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) ... 12 詳細org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) で invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477) ... 12 詳細

与えられた唯一のユーザー/パスワードは、JMS キュー自体のものです。どこで設定すればよいですか?

ありがとうクリス

4

3 に答える 3

2

わかりました - UserCredentialsConnectionFactory で接続ファクトリをラップする必要があります。

<bean id="authenticationConnectionFactory"
    class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
    <property name="targetConnectionFactory" ref="jmsConnectionFactory" />
    <property name="username" value="yyyyy" />
    <property name="password" value="xxxx" />
</bean>

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="authenticationConnectionFactory" />
    <property name="destinationResolver" ref="jmsDestinationResolver" />
    <property name="defaultDestination" ref="destination" />
于 2011-07-22T16:06:47.617 に答える
1

私は EMS の経験はありませんが、通常、ユーザーとパスワードは接続ファクトリで設定されるため、JNDI によって提供されるオブジェクトでそれを構成する必要があります。

于 2011-07-20T16:16:09.450 に答える