приводит к java.lang.ClassNotFoundException: org.aopalliance.aop.Advice - PullRequest
1 голос
/ 16 сентября 2010

У любого есть идея, почему добавление объявления, управляемого аннотациями, приводит к тому, что классы aopalliance не найдены. Я явно не определял ткачество, поэтому использовал значения по умолчанию Spring.

Любая помощь приветствуется

Ответы [ 2 ]

3 голосов
/ 16 сентября 2010

Spring имеет два режима создания прокси для поддержки транзакций.Режим по умолчанию - создание прокси-серверов JDK, но это работает, только если вы вводите интерфейсы.Если вы внедряете классы, будут использоваться прокси CGLib, и они создаются с использованием AspectJ (и, следовательно, aopalliance.jar и spring-aspect.jar необходимы на пути к классам).

Мой совет: обратитесь ксервисы и сервисы по интерфейсу:

private MyDaoInterface dao;

public void setDao(MyDaoInterface dao){
}

и Spring автоматически выберет прокси-подход.

См .:

2 голосов
/ 16 сентября 2010

Я не уверен, что реальный вопрос (если речь идет об истинной причине 1 , может быть полезным предоставление полной трассировки стека), но факт в том, что вы в настоящее время пропускаете aopalliance.jar наваш classpath (который ранее был включен в Spring jars, как упомянуто в этой теме или в этой записи блога ).

1 С предоставленным уровнемиз деталей, я думаю, что Spring загружает TransactionInterceptor, который является реализацией o.a.a.Advice, и ищет зависимость, которая отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...