我尝试编写一个简单的Spring Boot应用程序,用作RESTFul客户端。
主要部分如下所示:
@Autowired
RestService restService;
/**
* Boiler plate
* */
public static void main( String[] args )
{
SpringApplication.run(MyApplication.class, args);
}
@Override
public void run(String... arg0) throws Exception {
String url = "http://localhost:8080/XXXXXXXXXXXXXXXXXX";
DataSet ds = restService.getForEntity(url, DataSetVersionJson.class, DataSet.class);
}
其中DataSet,DataSetVersionJson和RestService是我导入MyApplication项目的其他项目的类。
Eclipse中的编译很好,但运行时错误如:
java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@27ff5d15: startup date [Fri Nov 25 17:24:54 EST 2016]; root of context hierarchy
发生。我查了谷歌和SO,似乎它与Spring版本冲突有关。好吧,在我的MyApplication项目中,我使用了
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.4.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
我找到的使用Spring核心版本4.2.x RELEASE。但是,其他导入的项目使用旧的Spring版本3.X.
这是错误的根本原因吗?什么可能是最好的解决方案?如果我还打算使用Spring启动,它的哪个版本支持Spring core 3.X?我找到了一个Spring引导版本的列表,但是它们有很多。