3

jmsの接続ファクトリを取得するために春を使用しています

<!-- looking through jndi -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
    <props>
        <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
        <prop key="java.naming.provider.url">t3://xxx.xxx.xx.x:8002</prop>
        <prop key="java.naming.security.principal">test</prop>
        <prop key="java.naming.security.credentials">test</prop>
    </props>
</property>
</bean>

<!-- JMS Topic Connection Factory -->
<bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiTemplate" ref="jndiTemplate" />
    <property name="jndiName" value="jms/AMP/AMPConnectionFactory" />
    <property name="lookupOnStartup" value="true" />
    <property name="cache" value="false" />
    <property name="proxyInterface" value="javax.jms.ConnectionFactory" />
</bean>

アプリケーション自体は weblogic の 1 つのインスタンスで実行され、jndi ルックアップは外部 weblogic サーバーで実行されます。問題は、上記の「jmsConnectionFactory」を使用して接続を作成しようとすると、エラーが発生することです。

Caused by: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]

私の「jmsConnectionFactory」は、接続を開くために適切な資格情報を使用していないようです。プログラムでjndiを介して「jmsConnectionFactory」を取得すると、Springコンテナがなくてもすべて正常に動作します。spring の接続ファクトリが別の資格情報を使用して接続を取得する理由はありますか?

4

0 に答える 0