Получение java.lang.ClassFormatError: повторяющееся имя и подпись метода в файле класса при реализации реализации PERTHIS aspectJ в Wildfly 8

Я использую AspectJ в качестве AOP API в своем проекте EAR. Проект содержит компоненты EJB и компоненты MBean и работает на Wildfly 8.2.0 сервере приложений.

В AspectJ есть ассоциация аспектов - perthis, которую я пытаюсь реализовать в своем проекте. Эта ассоциация аспектов создаст новый экземпляр аспекта для каждого объекта выполнения точки соединения.

Подробности:

AspectJ version used: 1.8.5
EJB version: 3.2
Application server: Wildfly 8.2.0
Java version: 1.7

Я получаю следующую ошибку для некоторых EJB и MBeans при использовании ассоциации аспектов perthis, как указано ниже:

Аспект j для этого использования:

@Aspect("perthis(getField2() || setField2())")
public abstract class Field2Aspect {
...
...
}

Получена ошибка:

2015-06-09 12:33:15,347 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.subunit."test.ear"."test_service.jar".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."test.ear"."test_service.jar".INSTALL: JBAS018733: Failed to process phase INSTALL of subdeployment "test_service.jar" of deployment "test.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.2.0.Final.jar:8.2.0.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_67]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_67]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_67]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011030: Could not configure component TestService
at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:95)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.2.0.Final.jar:8.2.0.Final]
... 5 more
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.jboss.classfilewriter.ClassFile.define(ClassFile.java:282)
at org.jboss.invocation.proxy.AbstractClassFactory.defineClass(AbstractClassFactory.java:164)
at org.jboss.invocation.proxy.AbstractProxyFactory.getCachedMethods(AbstractProxyFactory.java:150)
at org.jboss.as.ejb3.component.singleton.SingletonComponentDescription$5.configure(SingletonComponentDescription.java:193)
at org.jboss.as.ee.component.DefaultComponentViewConfigurator.configure(DefaultComponentViewConfigurator.java:68)
at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:81)
... 6 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) [:1.7.0_67]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_67]
at org.jboss.classfilewriter.ClassFile.define(ClassFile.java:277)
... 11 more
Caused by: java.lang.ClassFormatError: Duplicate method name&signature in class file com/test/it/service/TestService$$$view2
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_67]
at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [rt.jar:1.7.0_67]
... 15 more

JFYI, что я получаю сообщение об ошибке только при реализации perthis. Поскольку ассоциация аспектов AspectJ по умолчанию является SINGLETON, мне нужно иметь реализацию perthis в моем проекте, и ее реализация дает мне указанную выше ошибку. Кто-нибудь сталкивался с этим сценарием и ошибкой? Помогите мне, пожалуйста. Спасибо.


person sridhar    schedule 09.06.2015    source источник


Ответы (1)


Использование ассоциации аспектов percflow решило указанную выше проблему.

person sridhar    schedule 10.06.2015