spring - 强制 maven 到 drools-camel 的最新 Spring 版本

标签 spring tomcat maven apache-camel drools

我有一个项目使用 Apache Camel (2.10-SNAPSHOT) 和 Spring (3.0.7.RELEASE) 以及 Tomcat (7.0.26)。

<properties>
    <spring.version>3.0.7.RELEASE</spring.version>
    <camel.version>2.10-SNAPSHOT</camel.version>
</properties>

现在我想使用 drools-camel 组件。所以在我的 pom.xml

中添加了以下内容
<dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-camel</artifactId>
        <version>5.3.0.Final</version>
</dependency>

我可以构建我的项目,但出现运行时异常。

[          http-bio-8080-exec-7] ContextLoader                  ERROR Context initialization failed
306 org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]; nested exception is java.lang.NoSuchMethodError:     org.springframework.beans.MutablePropertyValues.add(Ljava/lang/String;Ljava/lang/Object;)Lorg/springframework/beans/MutablePropertyValues;
307         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420)[spring-2.5.6.jar:2.5.6]
308         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)[spring-2.5.6.jar:2.5.6]
309         at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)[spring-2.5.6.jar:2.5.6]
310         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)[spring-2.5.6.jar:2.5.6]
311         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)[spring-2.5.6.jar:2.5.6]
312         at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)[spring-2.5.6.jar:2.5.6]
313         at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)[spring-2.5.6.jar:2.5.6]
314         at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)[spring-2.5.6.jar:2.5.6]
315         at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)[spring-2.5.6.jar:2.5.6]
316         at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)[spring-2.5.6.jar:2.5.6]
317         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)[spring-2.5.6.jar:2.5.6]
318         at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)[spring-2.5.6.jar:2.5.6]
319         at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)[spring-2.5.6.jar:2.5.6]
320         at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)[spring-2.5.6.jar:2.5.6]
321         at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)[catalina.jar:7.0.26]
322         at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)[catalina.jar:7.0.26]
323         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)[catalina.jar:7.0.26]
324         at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)[catalina.jar:7.0.26]
325         at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)[catalina.jar:7.0.26]
326         at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)[catalina.jar:7.0.26]
327         at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)[catalina.jar:7.0.26]
328         at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:536)[catalina.jar:7.0.26]
329         at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1467)[catalina.jar:7.0.26]
330         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_29]
331         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_29]
332         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_29]
333         at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_29]
334         at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)[tomcat-coyote.jar:7.0.26]
335         at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)[:1.6.0_29]
336         at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)[:1.6.0_29]
337         at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1436)[catalina.jar:7.0.26]
338         at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:673)[catalina.jar:7.0.26]
339         at org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:431)[catalina.jar:7.0.26]
340         at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)[servlet-api.jar:]
341         at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)[servlet-api.jar:]
342         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)[catalina.jar:7.0.26]
343         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)[catalina.jar:7.0.26]
344         at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)[catalina.jar:7.0.26]
345         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)[catalina.jar:7.0.26]
346         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)[catalina.jar:7.0.26]
347         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)[catalina.jar:7.0.26]
348         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)[catalina.jar:7.0.26]
349         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)[catalina.jar:7.0.26]
350         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)[catalina.jar:7.0.26]
351         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)[catalina.jar:7.0.26]
352         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)[catalina.jar:7.0.26]
353         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)[catalina.jar:7.0.26]
354         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)[catalina.jar:7.0.26]
355         at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)[tomcat-coyote.jar:7.0.26]
356         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)[tomcat-coyote.jar:7.0.26]
357         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)[tomcat-coyote.jar:7.0.26]
358         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_29]
359         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_29]
360         at java.lang.Thread.run(Thread.java:680)[:1.6.0_29]

我认为该错误与使用 错误版本的 Spring jar (spring-2.5.6) 有关(参见 [INFO] +- org.springframework:spring:jar:2.5.6:compile 在下面的 mvn 依赖项输出中。。 Maven 依赖项输出显示原因是流口水。 有没有办法强制 drools-camel 组件使用 pom.xml 中定义的 spring 版本?

我正在使用 maven (mvn -version Apache Maven 3.0.3 (r1075438; 2011-02-28 12:31:09-0500))

[INFO] +- org.apache.camel:camel-core:jar:2.10-SNAPSHOT:compile
[INFO] +- org.apache.camel:camel-spring:jar:2.10-SNAPSHOT:compile
[INFO] |  +- org.springframework:spring-context:jar:3.0.7.RELEASE:compile
[INFO] |  +- org.springframework:spring-aop:jar:3.0.7.RELEASE:compile
[INFO] |  \- org.springframework:spring-tx:jar:3.0.7.RELEASE:compile
[INFO] +- org.apache.camel:camel-stream:jar:2.10-SNAPSHOT:compile
[INFO] +- org.apache.camel:camel-cxf:jar:2.10-SNAPSHOT:compile
[INFO] |  +- org.apache.camel:camel-cxf-transport:jar:2.10-SNAPSHOT:compile
[INFO] |  |  \- org.apache.cxf:cxf-rt-core:jar:2.5.2:compile
[INFO] |  +- org.apache.cxf:cxf-rt-frontend-jaxrs:jar:2.5.2:compile
[INFO] |  |  +- org.apache.cxf:cxf-common-utilities:jar:2.5.2:compile
[INFO] |  |  +- org.apache.cxf:cxf-api:jar:2.5.2:compile
[INFO] |  |  +- javax.ws.rs:jsr311-api:jar:1.1.1:compile
[INFO] |  |  +- org.apache.cxf:cxf-rt-bindings-xml:jar:2.5.2:compile
[INFO] |  |  \- org.apache.cxf:cxf-rt-transports-http:jar:2.5.2:compile
[INFO] |  |     \- org.apache.cxf:cxf-rt-transports-common:jar:2.5.2:compile
[INFO] |  +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.5.2:compile
[INFO] |  |  +- xml-resolver:xml-resolver:jar:1.2:compile
[INFO] |  |  +- asm:asm:jar:3.3:compile
[INFO] |  |  +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.5.2:compile
[INFO] |  |  \- org.apache.cxf:cxf-rt-ws-addr:jar:2.5.2:compile
[INFO] |  +- org.springframework:spring-beans:jar:3.0.7.RELEASE:compile
[INFO] |  +- org.apache.camel:camel-blueprint:jar:2.10-SNAPSHOT:compile
[INFO] |  |  +- org.apache.camel:camel-core-xml:jar:2.10-SNAPSHOT:compile
[INFO] |  |  +- org.apache.camel:camel-core-osgi:jar:2.10-SNAPSHOT:compile
[INFO] |  |  \- javax.xml.bind:jaxb-api:jar:2.1:compile
[INFO] |  |     \- javax.activation:activation:jar:1.1:compile
[INFO] |  +- org.apache.aries.blueprint:org.apache.aries.blueprint:jar:0.3:compile
[INFO] |  |  +- org.apache.aries:org.apache.aries.util:jar:0.3:compile
[INFO] |  |  +- org.apache.aries.testsupport:org.apache.aries.testsupport.unit:jar:0.3:compile
[INFO] |  |  \- org.apache.aries.proxy:org.apache.aries.proxy.api:jar:0.3:compile
[INFO] |  \- org.apache.cxf:cxf-rt-bindings-soap:jar:2.5.2:compile
[INFO] |     +- org.apache.cxf:cxf-tools-common:jar:2.5.2:compile
[INFO] |     \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.5.2:compile
[INFO] +- org.apache.camel:camel-http:jar:2.10-SNAPSHOT:compile
[INFO] |  +- org.apache.geronimo.specs:geronimo-servlet_2.5_spec:jar:1.1.2:compile
[INFO] |  +- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] |  \- commons-codec:commons-codec:jar:1.6:compile
[INFO] +- org.apache.camel:camel-twitter:jar:2.10-SNAPSHOT:compile
[INFO] |  +- org.twitter4j:twitter4j-core:jar:2.2.5:compile
[INFO] |  \- org.twitter4j:twitter4j-stream:jar:2.2.5:compile
[INFO] +- org.apache.camel:camel-xstream:jar:2.10-SNAPSHOT:compile
[INFO] |  +- com.thoughtworks.xstream:xstream:jar:1.4.2:compile
[INFO] |  |  +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] |  |  \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] |  +- stax:stax-api:jar:1.0.1:compile
[INFO] |  +- org.codehaus.jettison:jettison:jar:1.3.1:compile
[INFO] |  \- org.codehaus.woodstox:woodstox-core-asl:jar:4.1.2:compile
[INFO] |     +- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] |     \- org.codehaus.woodstox:stax2-api:jar:3.1.1:compile
[INFO] +- org.apache.camel:camel-csv:jar:2.10-SNAPSHOT:compile
[INFO] |  \- org.apache.servicemix.bundles:org.apache.servicemix.bundles.commons-csv:jar:1.0-r706899_3:compile
[INFO] +- org.apache.camel:camel-jackson:jar:2.10-SNAPSHOT:compile
[INFO] +- org.springframework:spring-core:jar:3.0.7.RELEASE:compile
[INFO] |  +- org.springframework:spring-asm:jar:3.0.7.RELEASE:compile
[INFO] |  \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] +- org.springframework:spring-web:jar:3.0.7.RELEASE:compile
[INFO] |  \- aopalliance:aopalliance:jar:1.0:compile
[INFO] +- org.springframework:spring-webmvc:jar:3.0.7.RELEASE:compile
[INFO] |  +- org.springframework:spring-context-support:jar:3.0.7.RELEASE:compile
[INFO] |  \- org.springframework:spring-expression:jar:3.0.7.RELEASE:compile
[INFO] +- org.apache.camel:camel-test:jar:2.10-SNAPSHOT:test (scope not updated to compile)
[INFO] |  \- junit:junit:jar:4.10:test
[INFO] |     \- org.hamcrest:hamcrest-core:jar:1.1:test
[INFO] +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.6.1:compile
[INFO] +- log4j:log4j:jar:1.2.16:compile
[INFO] +- org.codehaus.jackson:jackson-mapper-asl:jar:1.7.1:compile
[INFO] |  \- org.codehaus.jackson:jackson-core-asl:jar:1.7.1:compile
[INFO] \- org.drools:drools-camel:jar:5.3.0.Final:compile
[INFO]    +- org.drools:knowledge-api:jar:5.3.0.Final:compile
[INFO]    +- org.drools:drools-core:jar:5.3.0.Final:compile
[INFO]    |  \- org.mvel:mvel2:jar:2.1.0.drools4:compile
[INFO]    +- org.drools:drools-compiler:jar:5.3.0.Final:compile
[INFO]    |  +- org.antlr:antlr-runtime:jar:3.3:compile
[INFO]    |  +- org.antlr:antlr:jar:3.3:compile
[INFO]    |  +- org.antlr:stringtemplate:jar:3.2.1:compile
[INFO]    |  +- antlr:antlr:jar:2.7.7:compile
[INFO]    |  \- org.eclipse.jdt.core.compiler:ecj:jar:3.5.1:compile
[INFO]    +- org.jbpm:jbpm-flow-builder:jar:5.1.2.Final:compile
[INFO]    |  \- org.jbpm:jbpm-flow:jar:5.1.2.Final:compile
[INFO]    +- org.drools:drools-spring:jar:5.3.0.Final:compile
[INFO]    |  \- org.drools:drools-decisiontables:jar:5.3.0.Final:compile
[INFO]    |     +- org.drools:drools-templates:jar:5.3.0.Final:compile
[INFO]    |     \- net.sourceforge.jexcelapi:jxl:jar:2.6.10:compile
[INFO]    +- org.drools:drools-grid-impl:jar:5.3.0.Final:compile
[INFO]    |  +- org.apache.mina:mina-core:jar:2.0.1:compile
[INFO]    |  +- commons-collections:commons-collections:jar:3.1:compile
[INFO]    |  +- com.hazelcast:hazelcast:jar:1.8.5:compile
[INFO]    |  +- org.hibernate:hibernate-entitymanager:jar:3.4.0.GA:compile
[INFO]    |  |  \- org.hibernate:ejb3-persistence:jar:1.0.2.GA:compile
[INFO]    |  +- org.hibernate:hibernate-annotations:jar:3.4.0.GA:compile
[INFO]    |  +- org.hibernate:hibernate-commons-annotations:jar:3.1.0.GA:compile
[INFO]    |  +- org.hibernate:hibernate-core:jar:3.3.2.GA:compile
[INFO]    |  +- javax.persistence:persistence-api:jar:1.0:compile
[INFO]    |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO]    |  |  \- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO]    |  +- javassist:javassist:jar:3.12.0.GA:compile
[INFO]    |  \- javax.transaction:jta:jar:1.1:compile
[INFO]    +- org.apache.camel:camel-jaxb:jar:2.4.0:compile
[INFO]    |  +- commons-logging:commons-logging-api:jar:1.1:compile
[INFO]    |  \- com.sun.xml.bind:jaxb-impl:jar:2.1.12:compile
**[INFO]    +- org.springframework:spring:jar:2.5.6:compile**
[INFO]    \- org.apache.cxf:cxf-bundle-jaxrs:jar:2.4.1:compile
[INFO]       +- org.apache.ws.xmlschema:xmlschema-core:jar:2.0:compile
[INFO]       +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO]       +- org.apache.geronimo.specs:geronimo-annotation_1.0_spec:jar:1.1.1:compile
[INFO]       +- org.apache.neethi:neethi:jar:3.0.0:compile
[INFO]       +- wsdl4j:wsdl4j:jar:1.6.2:compile
[INFO]       +- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.1:compile
[INFO]       +- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.7.1:compile
[INFO]       +- org.eclipse.jetty:jetty-server:jar:7.4.2.v20110526:compile
[INFO]       +- org.eclipse.jetty:jetty-continuation:jar:7.4.2.v20110526:compile
[INFO]       +- org.eclipse.jetty:jetty-http:jar:7.4.2.v20110526:compile
[INFO]       +- org.eclipse.jetty:jetty-io:jar:7.4.2.v20110526:compile
[INFO]       +- org.eclipse.jetty:jetty-util:jar:7.4.2.v20110526:compile
[INFO]       +- org.eclipse.jetty:jetty-security:jar:7.4.2.v20110526:compile
[INFO]       \- org.apache.geronimo.specs:geronimo-servlet_3.0_spec:jar:1.0:compile

最佳答案

将所需的 spring 版本添加为单独的依赖项,并排除 drools 附带的版本:

<dependency>
    <groupId>org.drools</groupId>
    <artifactId>drools-camel</artifactId>
    <version>5.3.0.Final</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
        </exclusion>
    </exclusions>
</dependency>

关于spring - 强制 maven 到 drools-camel 的最新 Spring 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761873/

相关文章:

maven - 在 Spock 测试中无法启动 chromedriver

java - 搜索 Nexus 永远不会显示最新的 Artifact 版本

spring - 在 SSL CXF SOAP 客户端下访问 Web 服务

java - 了解在 Web 容器中启动 Spring 批处理作业

spring - 执行集成测试时,取决于环境的不同数据库配置

tomcat - Cloudbees - 部署后收到 500 错误

eclipse - 在 Apache Tomcat 上运行 jsp 网页的编码问题

java - 空指针异常 Spring Integration 消息传递

tomcat - URL 中的 Grails Tomcat 根上下文和双斜杠 (//)

java - 加载或实例化 TagLibraryValidator 失败