Аспект не найден во время выполнения

Я пытаюсь добавить аспект в проект maven, используя java 6.0. Использование версии 1.4 аспекта j-maven-plugin и версии 1.6.11 аспекта.

Классы находятся во внешней банке зависимостей, и вот pom:

 <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <configuration>
      <complianceLevel>1.6</complianceLevel>
      <source>1.6</source>
      <target>1.6</target>          
      <showWeaveInfo>true</showWeaveInfo>
      <weaveDependencies>
        <weaveDependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>gem</artifactId>
        </weaveDependency>
      </weaveDependencies>          
    </configuration>
    <executions>
      <execution>
        <!-- Needs to run before the regular javac compile phase -->
        <phase>process-sources</phase>
        <goals>
          <goal>compile</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Аспекты, кажется, применяются нормально во время сборки: Вот пример:

[INFO] --- aspectj-maven-plugin:1.4:compile (default) @ test ---
[INFO] Extending interface set for type 'test.pkg1.pkg2.PaymentEnquiry' (PaymentE
 nquiry.java) to include 'test.pkg1.pkg2.aj.AdditionalPaymentEnquiryMethods'    
(PaymentEnquiryExtensions.aj)

Но затем во время выполнения я получаю следующую ошибку: java.lang.NoSuchMethodError:
test.pkg1.pkg2.Payment.setDetails(Ljava/util/List;)V

Любая идея о том, почему это может происходить, была бы очень полезной.


person Sonya    schedule 15.09.2011    source источник
comment
Где заканчиваются модифицированные файлы классов? Вы уверены, что включаете их вместо нерасширенных в путь к классам при запуске кода?   -  person Dave Newton    schedule 16.09.2011


Ответы (1)


Самая очевидная причина в том, что нет метода с сигнатурой

void setDetails(List)

на тест.pkg1.pkg2.Оплата. Это не очень похоже на проблему AspectJ — скорее на проблему неправильного кода в пути к классам во время выполнения.

person Ryan Stewart    schedule 16.09.2011