Closed
Description
Abhijit Sarkar opened SPR-11715 and commented
Groovy application with JSR-303 bean validation. Configured MethodValidationPostProcessor
and LocalValidatorFactoryBean
in groovy beans
along with other beans. Application fails to start due to DI failure for beans using JSR-303 validation.
Relevant classes below. Actually using 4.0.4.BUILD-SNAPSHOT
but JIRA won't let me choose that.
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private name.abhijitsarkar.moviedatabase.service.rip.MovieRipService name.abhijitsarkar.moviedatabase.service.facade.MovieFacade.movieRipService; nested exception is java.lang.IllegalArgumentException: Can not set name.abhijitsarkar.moviedatabase.service.rip.MovieRipService field name.abhijitsarkar.moviedatabase.service.facade.MovieFacade.movieRipService to com.sun.proxy.$Proxy50
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
... 31 more
beans {
...
validator(LocalValidatorFactoryBean)
methodValidationPostProcessor(MethodValidationPostProcessor) {
validator = ref('validator')
}
}
@Service
@Validated
class MovieRipService {
...
Collection<MovieRip> getMovieRips(
@ValidDirectory(message = 'Movie directory is not valid.') String movieDirectory) {
...
}
@Service
class MovieFacade {
@Autowired
MovieRipService movieRipService
Affects: 3.2.8, 4.0.3
Issue Links:
- Mis-proxying of Mockito mock and poor diagnostics for type mismatch on proxy injection [SPR-14478] #19047 Mis-proxying of Mockito mock and poor diagnostics for type mismatch on proxy injection