gpt4 book ai didi

activemq - 无法刷新目标 'queue://inventorydsDestination' 的 JMS 连接 - 将在 5000 毫秒后重试。原因: AOP configuration seems to be invalid

转载 作者:行者123 更新时间:2023-12-02 19:10:27 27 4
gpt4 key购买 nike

当我在 Tomcat 管理器中重新部署应用程序 war 时,出现以下异常。例如,在第一次部署时,它可以正确连接到外部 ActiveMQ,但是当我在 Tomcat 管理器中停止/启动 war 时,会重复抛出以下错误。此后,JMS 无法连接到 ActiveMQ,但出现以下异常:

[2015-09-13T04:03:33.689] | [ERROR] | [inventorydsRequestListenerContainer-1] | [Could not refresh JMS Connection for destination 'queue://inventorydsDestination' - retrying in 5000 ms. Cause: AOP configuration seems to be invalid: tried calling method [public abstract javax.jms.Connection javax.jms.ConnectionFactory.createConnection() throws javax.jms.JMSException] on target [org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter@168d95c7]; nested exception is java.lang.IllegalArgumentException: java.lang.ClassCastException@2fb6f3c3]

applicationContext-Jms.xml

<bean id="jmsJndiConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${inventory.mq.name}"/>
<property name="lookupOnStartup" value="false"/>
<property name="cache" value="true" />
<property name="proxyInterface" value="javax.jms.QueueConnectionFactory" />
</bean>

<bean id="jmsConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="jmsJndiConnectionFactory" />
<property name="sessionCacheSize" value="10" />
</bean>

connectionFactory - JNDI 配置

<bean id="jndiName" class="java.lang.String">
<constructor-arg value="${inventory.mq.name}"/>
</bean>

<bean id="bindingObject" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="mqConnectionFactory" />
<property name="username" value="${inventory.activeMQ.username}" />
<property name="password" value="${inventory.activeMQ.password}" />
</bean>

<bean id="mqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${inventory.activeMQ.brokerurl}" />
</bean>

属性:

inventory.activeMQ.brokerurl=tcp://localhost:61616
inventory.activeMQ.username=admin
inventory.activeMQ.password=admin
inventory.mq.name=jms/connectionFactory
inventory.queue.type=org.apache.activemq.command.ActiveMQQueue

最佳答案

我遇到了类似的问题,发现这是 tomcat 和我的 Web 应用程序之间的类路径问题。我需要在我的 Web 应用程序中将 jms 依赖项的范围设置为提供的而不是默认值(即编译)。这样,我的 WAR 可部署文件就不会包含另一个与位于 tomcat lib 文件夹中的 apache-activemq-all jar 中包含的 jms 类发生冲突的 jms jar。

    <dependency>
<groupId>javax.jms</groupId>
<artifactId>jms-api</artifactId>
<version>1.1-rev-1</version>
<scope>provided</scope>
</dependency>

关于activemq - 无法刷新目标 'queue://inventorydsDestination' 的 JMS 连接 - 将在 5000 毫秒后重试。原因: AOP configuration seems to be invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32548957/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com