Spring数据Rest引导问题
我正在用SpringDataREST编写一个rest服务。我面临一个我不知道如何解决的例外 我有以下应用程序配置Spring数据Rest引导问题,spring,spring-mvc,spring-data-rest,Spring,Spring Mvc,Spring Data Rest,我正在用SpringDataREST编写一个rest服务。我面临一个我不知道如何解决的例外 我有以下应用程序配置 @Configuration @ComponentScan(basePackageClasses = Application.class) @EnableJpaRepositories @EnableTransactionManagement public class Application { @Bean public DataSource dataSource(
@Configuration
@ComponentScan(basePackageClasses = Application.class)
@EnableJpaRepositories
@EnableTransactionManagement
public class Application {
@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder().setType(H2).build();
}
@Bean
public CustomerLoader loadCustomers() {
return new CustomerLoader();
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, JpaVendorAdapter jpaVendorAdapter) {
LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
lef.setDataSource(dataSource);
lef.setJpaVendorAdapter(jpaVendorAdapter);
lef.setPackagesToScan("hello");
return lef;
}
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
hibernateJpaVendorAdapter.setShowSql(false);
hibernateJpaVendorAdapter.setGenerateDdl(true);
hibernateJpaVendorAdapter.setDatabase(Database.H2);
return hibernateJpaVendorAdapter;
}
@Bean
public PlatformTransactionManager transactionManager() {
return new JpaTransactionManager();
}
这是我的网络应用初始化器
@Override
public void onStartup(ServletContext ctx)
throws ServletException {
AnnotationConfigWebApplicationContext rootCtx = new AnnotationConfigWebApplicationContext();
rootCtx.register(Application.class);
ctx.addListener(new ContextLoaderListener(rootCtx));
RepositoryRestExporterServlet exporter = new RepositoryRestExporterServlet();
ServletRegistration.Dynamic reg = ctx.addServlet("exporter", exporter);
reg.setLoadOnStartup(1);
reg.addMapping("/*");
}
在服务器上运行应用程序时,Servlet.init上出现以下异常
严重:Servlet/spring数据rest引发加载异常
java.lang.NoSuchMethodError:org.springframework.data.rest.webmvc.ResourceProcessorInvokingHandlerAdapter.getReturnValueHandlersLog/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite;如果您想要完整的stacktrace,请告诉我
我认为这可能是由于一些jar重复导致的类加载问题。但是我正在用maven构建我的项目,我只使用了一个存储库,它的父版本是pom spring boot starter父版本0.5.0.M5,这可能只是提醒我注意您在实体包中使用的名称。我说的是lef.setPackagesToScan方法正在接收的字符串Hello。这是实体所在的真实包吗?如果不是,则可能是您的错误原因。我所做的是从pom.xml中删除maven boot starter父级,并手动添加所有依赖项。我得到了一场规模完全相同的战争,但它起了作用。Magic…对于我来说,更新到最新的快照版本解决了这个问题
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-webmvc</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>http://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
包裹没问题,不是那样的