0

当我尝试向队列发送消息时出现此异常。我的 jms 属性是通过 spring application-context 设置的。请找到为 jms 设置的 applicationContext.xml 属性。

        <bean id="jmsQueueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiTemplate">
        <ref bean="jndiTemplate" />
    </property>
    <property name="lookupOnStartup" value="false"/>
    <property name="jndiName">
        <value>${jmsQueueConnectionFactory.jndiName}</value>
    </property>
    <property name="proxyInterface" value="javax.jms.ConnectionFactory"/>
</bean>

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
        <props>
            <prop key="java.naming.factory.initial">
                ${jndiTemplate.naming.factory}
            </prop>
            <prop key="com.sonicsw.jndi.mfcontext.domain">
                ${jndiTemplate.domain}
            </prop>
            <prop key="java.naming.provider.url">
                ${jndiTemplate.provider.url}
            </prop>
            <prop key="java.naming.security.principal">${jndiTemplate.security.principal}</prop>
            <prop key="java.naming.security.credentials">${jndiTemplate.security.credentials}</prop>
        </props>
    </property>
</bean>

<bean id="requestsQueue" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiTemplate">
        <ref bean="jndiTemplate" />
    </property>
    <property name="lookupOnStartup" value="false"/>
    <property name="jndiName">
        <value>${requestsQueue.jndiName}</value>
    </property>
    <property name="proxyInterface" value="javax.jms.Destination"/>
</bean>

我得到如下异常:

   org.springframework.jms.InvalidDestinationException: Unknown destination type - $Proxy115; nested exception is javax.jms.InvalidDestinationException: Unknown destination type - $Proxy115
4

1 回答 1

1

我想这是因为您将您隐藏requestsQueue在一个惰性代理后面,并且您的 JMS 实现由于某种原因不喜欢它:

<property name="lookupOnStartup" value="false"/>
<property name="proxyInterface" value="javax.jms.Destination"/>

尝试删除这些行。

于 2012-11-29T08:52:28.143 回答