Я отлаживал это некоторое время, и я надеюсь, что кто-то может пролить свет здесь.
У меня есть проект Maven, который добавлен в Jenkins, используя JDK 1.6. Я использую AOP в этом проекте для обработки транзакции базы данных.
Когда я запускаю сборку в Jenkins, мой тестовый файл не работает со следующими исключениями: -
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'dataHandlerClassificationImpl':
Injection of resource dependencies failed; nested exception is
org.springframework.beans.factory.BeanNotOfRequiredTypeException:
Bean named 'writerDataLocationImpl' must be of type [xxx.script.WriterData],
but was actually of type [$Proxy17]
...
...
Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException:
Bean named 'writerDataLocationImpl' must be of type [xxx.script.WriterData],
but was actually of type [$Proxy17]
...
...
Класс DataHandlerClassificationImpl
выглядит примерно так: -
@Service
public class DataHandlerClassificationImpl extends DataHandler {
@Resource(name="writerDataLocationImpl")
private WriterData writerData;
...
}
WriterData
- это интерфейс с несколькими реализациями.
Я могу выполнить код без проблем из IDE. Чтобы определить, является ли это проблемой Maven или проблемой Jenkins, я перешел в папку заданий проекта Jenkins с помощью командной строки, и я могу запустить mvn test
без каких-либо ошибок.
Я знаю, что прокси-ошибка имеет какое-то отношение к AOP, и что я могу только autwire для интерфейса вместо конкретного класса... но это не так, потому что я могу запустить мой код отлично за пределами Jenkins.
Любые идеи? Благодарю.