2014-12-18 3 views
4
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected com.cms.service.FolderService com.cms.action.BaseAction.folderService; nested exception is java.lang.IllegalArgumentException: Can not set com.cms.service.FolderService field com.cms.action.BaseAction.folderService to com.sun.proxy.$Proxy22 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:518) 
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287) 
    ... 30 more 
Caused by: java.lang.IllegalArgumentException: Can not set com.cms.service.FolderService field com.cms.action.BaseAction.folderService to com.sun.proxy.$Proxy22 
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146) 
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150) 
    at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63) 
    at java.lang.reflect.Field.set(Field.java:657) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:514) 
    ... 32 more 

это мой baseAction

public class BaseAction { 

    @Autowired 
    protected FolderService folderService; 

    @Autowired 
    protected ArticleService fileService; 

    @Autowired 
    protected TemplateService themeService; 

    @Autowired 
    protected HeadlineService headlineService; 

    protected final Logger logger = Logger.getLogger(this.getClass()); 
} 

и это мой FolderService

@Service 
public class FolderService { 

    protected final Logger logger = Logger.getLogger(this.getClass()); 

    @Autowired 
    private FolderDao folderDao; 

    @Autowired 
    private AdminFolderDao adminFolderDao; 

...................next is the java method 

} 
+0

Поскольку это связано с прокси-сервером, вы можете опубликовать полную конфигурацию и указать, если вы выполняете какое-либо управление транзакциями, АОП и т. Д.? –

+0

Я извлекаю интерфейс для службы, и все в порядке, спасибо вам большое –

+2

Опубликуйте все, что вы сделали, чтобы исправить свою проблему в качестве ответа и пометить ее как разрешенную или удалить вопрос в целом. – kryger

ответ

6

Обычно это означает, что есть. прокси-сервер AOP, передающий ваш компонент. Например, если вы аннотировали один из ваших методов с @Transaction.

+2

Если класс нужен @Transaction аннотация, то как это сделать? – sendreams

+0

Ты, сэр, просто спас мне день, все приветствует тебя! – BiAiB

+0

Любые идеи для работы вокруг? –

0

Принуждение АОП махнуть с помощью CGLIB прокси, настроив

spring.aop.proxy-target-class=true 

помогает.

См this article для получения дополнительной информации

+1

Имейте в виду, что ссылки могут сломаться. Приятно, что вы коротко отредактировали его; подумайте о том, чтобы добавить более подробную информацию в свой пост напрямую. – YakovL

Смежные вопросы