当我尝试将消息发送到队列时,我收到此异常。我的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
答案 0 :(得分:1)
我想这是因为您将requestsQueue
隐藏在一个惰性代理后面,而您的JMS实现由于某种原因不喜欢它:
<property name="lookupOnStartup" value="false"/>
<property name="proxyInterface" value="javax.jms.Destination"/>
尝试删除这些行。