Spring 框架升级 5.X 导致错误 class 找不到 org.springframework.context.SmartLifecycle 文件

Spring Framework upgrade 5.X leads to error class file for org.springframework.context.SmartLifecycle not found

我一直在将其中一个应用程序从 3.X 升级到 spring framwork 5.X,我未能解决的问题之一是以下错误 - 这很有用共 spring-jms

cannot access org.springframework.context.SmartLifecycle [ERROR]
class file for org.springframework.context.SmartLifecycle not found

我可以看到最后一个版本完全相同的代码适用于 Spring 4.3.9(4.X 版本的最后一个版本)并中断 Spring 5.0.0(第一个 5.X 版本)

我没有看到我的代码公开 class SmartLifecycle 但我怀疑 DefaultMessageListenerContainer 实例有问题。

public class Factory {
    private DefaultMessageListenerContainer testListnerService;

    public void start() {

        final TestMessageListener testMessageListener = new TestMessageListener();
        testListnerService = new DefaultMessageListenerContainer();    <-- This is where compilation breaks
        testListnerService.setMessageListener(testMessageListener);
        testListnerService.setSessionTransacted(true);
        testListnerService.afterPropertiesSet();
    }

我在这里创建了最小的例子https://github.com/milandesai47/com.jms.test/blob/master/pom.xml#L33

我是否遗漏了任何明显的 spring 依赖项?

您需要将以下依赖项添加到您的 pom.xml:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.0.0.RELEASE</version>
</dependency>