From 29c839f5c672cb2f25b45a5095903f12adc4ae17 Mon Sep 17 00:00:00 2001 From: Jon Brisbin Date: Tue, 8 May 2012 15:38:59 -0500 Subject: [PATCH] Fix #8 by adding @EnableWebMvc et al to the Controller to ensure OpenEntityManagerInViewInterceptor is properly registered, as well as other Spring MVC helpers that are needed for things to work correctly. --- .../RepositoryRestMvcConfiguration.java | 43 ++++++------------- 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositoryRestMvcConfiguration.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositoryRestMvcConfiguration.java index 51d9245c0..f916fe060 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositoryRestMvcConfiguration.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/RepositoryRestMvcConfiguration.java @@ -22,19 +22,18 @@ import org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcesso import org.springframework.util.Assert; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.View; -import org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver; -import org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver; -import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter; -import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; -import org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.ContentNegotiatingViewResolver; /** * @author Jon Brisbin */ @Configuration +@EnableWebMvc @ImportResource("classpath*:META-INF/spring-data-rest/**/*-export.xml") -public class RepositoryRestMvcConfiguration { +public class RepositoryRestMvcConfiguration extends WebMvcConfigurerAdapter { ContentNegotiatingViewResolver viewResolver; RepositoryRestController repositoryRestController; @@ -51,6 +50,14 @@ public class RepositoryRestMvcConfiguration { @Autowired(required = false) ValidatingRepositoryEventListener validatingRepositoryEventListener; + @Override public void addArgumentResolvers(List argumentResolvers) { + argumentResolvers.add(new ServerHttpRequestMethodArgumentResolver()); + } + + @Override public void addInterceptors(InterceptorRegistry registry) { + registry.addWebRequestInterceptor(openEntityManagerInViewInterceptor()); + } + @Bean List> httpMessageConverters() { Assert.notNull(httpMessageConverters); @@ -118,28 +125,4 @@ public class RepositoryRestMvcConfiguration { return repositoryRestController; } - @Bean RequestMappingHandlerMapping handlerMapping() { - return new RequestMappingHandlerMapping(); - } - - @Bean RequestMappingHandlerAdapter handlerAdapter() { - RequestMappingHandlerAdapter handlerAdapter = new RequestMappingHandlerAdapter(); - handlerAdapter.setCustomArgumentResolvers( - Arrays.asList((HandlerMethodArgumentResolver) new ServerHttpRequestMethodArgumentResolver()) - ); - return handlerAdapter; - } - - @Bean ExceptionHandlerExceptionResolver exceptionHandlerExceptionResolver() { - return new ExceptionHandlerExceptionResolver(); - } - - @Bean DefaultHandlerExceptionResolver handlerExceptionResolver() { - return new DefaultHandlerExceptionResolver(); - } - - @Bean ResponseStatusExceptionResolver responseStatusExceptionResolver() { - return new ResponseStatusExceptionResolver(); - } - }