Spring Data Rest Boot 应用无法以 Java 配置 class 启动
Spring Data Rest Boot app fails to start with Java config class
我正在尝试 运行 简单的 Spring Data Rest Boot 应用程序 (v1.2.3.RELEASE),仅对工作 Spring 参考示例进行一点小修改应用程序 (http://spring.io/guides/gs/accessing-mongodb-data-rest/) 并且无法启动。
更具体地说,我使用时:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
只需遵循简单的代码配置:
public class Application {
public static void main(String[] args){
SpringApplication.run(Config.class, args);
}
}
@SpringBootApplication
public class Config {
}
没有别的,我在启动时遇到以下错误:
2015-04-20 12:07:32.250 ERROR 5693 --- [ main]
o.s.boot.SpringApplication : Application startup failed
org.springframework.context.ApplicationContextException: Unable to
start embedded container; nested exception is
org.springframework.boot.context.embedded.EmbeddedServletContainerException:
Unable to start embedded Tomcat ...
Caused by:
java.lang.ClassCastException:
jug.ua.json.test.Config$$EnhancerBySpringCGLIB$797226 cannot be
cast to
org.springframework.data.rest.core.config.RepositoryRestConfiguration
at
org.springframework.boot.autoconfigure.data.rest.SpringBootRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$a999d99.config()
...
但是以下代码配置工作正常:
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
}
另外,如果我改用:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
单独的 Java 配置 class 方法也工作正常...
我做错了什么,因为我不敢相信我发现了如此明显的错误?
谢谢,
奥列格
问题似乎是由于 SpringBootRepositoryRestMvcConfiguration
上的 config
bean 方法(继承自 Spring Data REST 的 RepositoryRestMvcConfiguration
)和您的配置 class 名为 Config
。将其重命名为 Config
以外的其他名称应该可以让一切恢复正常。
我正在尝试 运行 简单的 Spring Data Rest Boot 应用程序 (v1.2.3.RELEASE),仅对工作 Spring 参考示例进行一点小修改应用程序 (http://spring.io/guides/gs/accessing-mongodb-data-rest/) 并且无法启动。
更具体地说,我使用时:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
只需遵循简单的代码配置:
public class Application {
public static void main(String[] args){
SpringApplication.run(Config.class, args);
}
}
@SpringBootApplication
public class Config {
}
没有别的,我在启动时遇到以下错误:
2015-04-20 12:07:32.250 ERROR 5693 --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat ...
Caused by: java.lang.ClassCastException: jug.ua.json.test.Config$$EnhancerBySpringCGLIB$797226 cannot be cast to org.springframework.data.rest.core.config.RepositoryRestConfiguration at org.springframework.boot.autoconfigure.data.rest.SpringBootRepositoryRestMvcConfiguration$$EnhancerBySpringCGLIB$a999d99.config() ...
但是以下代码配置工作正常:
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
}
另外,如果我改用:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
单独的 Java 配置 class 方法也工作正常...
我做错了什么,因为我不敢相信我发现了如此明显的错误?
谢谢, 奥列格
问题似乎是由于 SpringBootRepositoryRestMvcConfiguration
上的 config
bean 方法(继承自 Spring Data REST 的 RepositoryRestMvcConfiguration
)和您的配置 class 名为 Config
。将其重命名为 Config
以外的其他名称应该可以让一切恢复正常。