嵌套异常是javax.jms.InvalidDestinationException:未知目标类型 - $ Proxy115

时间:2012-11-29 07:31:39

标签: java jms spring-jms

当我尝试将消息发送到队列时,我收到此异常。我的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

1 个答案:

答案 0 :(得分:1)

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

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

尝试删除这些行。