1

我在这个版本中使用 spring 集成和 java-dsl 依赖项。

  • 弹簧集成-jdbc- 5.0.0M6
  • 弹簧集成-ws- 5.0.0M6
  • 弹簧集成-http- 5.0.0M6
  • 弹簧集成-jmx- 5.0.0M6
  • 弹簧集成核心- 5.0.0M6
  • spring-integration-java-dsl- 1.2.2RELEASE

由于新的 JdbcMetadataStore,我必须使用 5.0.0M6 版本。

上周,我使用了 spring 集成 4.3.11RELEASE 和 java-dsl-1.2.2RELEASE 并且我的应用程序正常工作。

在升级过程之后,会抛出这个运行时异常:

Caused by: java.lang.NoClassDefFoundError: org/springframework/integration/expression/IntegrationEvaluationContextAware
at org.springframework.integration.dsl.config.IntegrationFlowBeanPostProcessor.registerComponent(IntegrationFlowBeanPostProcessor.java:280) ~[spring-integration-java-dsl-1.2.2.RELEASE.jar:na]
at org.springframework.integration.dsl.config.IntegrationFlowBeanPostProcessor.processStandardIntegrationFlow(IntegrationFlowBeanPostProcessor.java:242) ~[spring-integration-java-dsl-1.2.2.RELEASE.jar:na]
at org.springframework.integration.dsl.config.IntegrationFlowBeanPostProcessor.processIntegrationFlowImpl(IntegrationFlowBeanPostProcessor.java:254) ~[spring-integration-java-dsl-1.2.2.RELEASE.jar:na]
at org.springframework.integration.dsl.config.IntegrationFlowBeanPostProcessor.postProcessBeforeInitialization(IntegrationFlowBeanPostProcessor.java:103) ~[spring-integration-java-dsl-1.2.2.RELEASE.jar:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:422) ~[spring-beans-5.0.0.RC3.jar:5.0.0.RC3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1707) ~[spring-beans-5.0.0.RC3.jar:5.0.0.RC3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.0.0.RC3.jar:5.0.0.RC3]
... 15 common frames omitted

IntegrationFlowBeanPostProcessor 类定义中有 2 个,我的应用程序可以使用它:org.springframework.integration.dsl.config.IntegrationFlowBeanPostProcessor

和下面的代码,它抛出类未找到异常:

if (component instanceof org.springframework.integration.expression.IntegrationEvaluationContextAware)

另一个类在这个包中:org.springframework.integration.config.dsl

它不使用 IntegrationEvaluationContextAware。

但是我的应用程序可以使用第一个。

这可能是什么原因?

谢谢

4

1 回答 1

1

我现在阅读 Spring Integration 4.3 到 5.0 迁移指南,我看到了这个:Java DSL Spring Integration Java DSL 已经与 Java 8 代码库合并到 Core 项目中。旧项目保留在以前的 Spring Integration 版本中,与 5.0 版本不兼容。我删除了 java-dsl 依赖项,我的项目工作了。对不起我的问题

于 2018-09-04T06:58:05.737 回答