我正在使用spring获取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的一个实例上运行,而jndi查找在外部weblogic服务器上执行 . 问题是,当我尝试使用上面提到的“jmsConnectionFactory”的帮助创建连接时,我收到错误:

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

似乎我的“jmsConnectionFactory”没有使用propper凭证来打开连接 . 在我以编程方式通过jndi获取“jmsConnectionFactory”的同时,没有 spring 容器,一切正常 . 有什么线索为什么spring的连接工厂使用另一个凭证来获得连接?