Я пишу службу отдыха с помощью spring-data-rest. И я столкнулся с исключением, которое я не знаю, как исправить.
У меня есть следующая конфигурация приложения
@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();
}
И это мой инициализатор WebApplication
@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()
SEVERE: Servlet /spring-data-rest threw load() exception
java.lang.NoSuchMethodError: org.springframework.data.rest.webmvc.ResourceProcessorInvokingHandlerAdapter.getReturnValueHandlers()Lorg/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite;
(если вам нужна полная трассировка стека, сообщите об этом)
Я думал, что это будет проблема с загрузкой класса из-за дублирования jar. Но я создаю свой проект с помощью maven и использую только один репозиторий (http://repo.spring.io/libs-milestone) с родительской версией pom spring-boot-starter-parent версии 0.5.0.M5