Я уже некоторое время отлаживаю это и надеюсь, что кто-нибудь сможет пролить здесь свет.
У меня есть проект Maven, добавленный в Jenkins с использованием JDK 1.6. В этом проекте я использую АОП для обработки транзакции базы данных.
Когда я запускаю сборку в 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, и что я могу автоматически подключаться к интерфейсу, а не к конкретному классу ... но это не так, поскольку я могу нормально запускать свой код вне Jenkins .
Есть идеи? Спасибо.