我正在尝试将项目从 spring 3.0.7 升级到 spring 3.2.3。我目前遇到了 activemq 依赖项的问题,无法弄清楚我需要什么 jar 或首先发生冲突。以下是我的堆栈跟踪
在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.runTests(RemoteTestRunner. java:467) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 原因:org.springframework.beans.factory.BeanCreationException:创建名为 'org.apache.activemq.xbean 的 bean 时出错。 XBeanBrokerService#0' 在类路径资源 [producerServiceContext-test.xml] 中定义:bean 初始化失败;嵌套异常是 java.lang.NoSuchFieldError: org.springframework.beans 处的 NULL。
以下是我的activemq pom依赖
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-core</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>5.5.0</version>
</dependency>
此外,我正在使用 spring 3.2.3 的分发包。我喜欢避免在这里复制粘贴那个,因为它有很多依赖项,我宁愿保持简洁明了。
这是我不会加载的应用程序上下文
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">
<!-- lets create an embedded ActiveMQ Broker -->
<amq:broker useJmx="false" persistent="false">
<amq:transportConnectors>
<amq:transportConnector uri="tcp://localhost:0" />
</amq:transportConnectors>
</amq:broker>
<!-- ActiveMQ destinations to use -->
<amq:queue id="destination" physicalName="org.apache.activemq.spring.Test.spring.embedded" />
<!-- JMS ConnectionFactory to use, configuring the embedded broker using XML -->
<amq:connectionFactory id="jmsFactory" brokerURL="vm://localhost?broker.persistent=false" />
<!-- Spring JMS Template -->
<bean id="fastJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<!-- lets wrap in a pool to avoid creating a connection per send -->
<bean class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory">
<ref local="jmsFactory" />
</property>
</bean>
</property>
</bean>
<bean id="consumerJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jmsFactory" />
</bean>
<bean id="fastJmsProducer" class="com.emakina.truvo.ssls.fast.service.util.FastJmsProducer">
<property name="template">
<ref bean="fastJmsTemplate"></ref>
</property>
<property name="destination">
<ref bean="destination" />
</property>
</bean>
<bean id="consumer" class="com.emakina.truvo.ssls.fast.service.util.SimpleFastJmsConsumer">
<property name="template" ref="consumerJmsTemplate" />
<property name="destination" ref="destination" />
</bean>
</beans>
如果有人遇到相同的集成问题,我将非常感谢一些反馈。