on 2018 Feb 05 9:50 AM
Hey guys,
I'm currently facing the problem that my AspectJ Class is not getting trigger or much more it is not getting used from my aop.xml as soon as I start the hybrisserver.
I want to intercept the EditorConfigurationUtil getColumns() method because we have wanted to extend the ListView.xsd with our own custom logic.
My Aspect class is inside the following package: com.emmet.prem.pim.AspectJEditorUtil.AspectJEditorUtil It is inside the backoffice/src folder
My aop.xml looks as the following:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.ee.org/aspectj/dtd/aspectj.dtd">
<aspectj>
<weaver options="-debug -showWeaveInfo">
<include within="com.emmet.prem.pim.AspectJEditorUtil..*" />
<include within="com.hybris.cockpitng.common.configuration.EditorConfigurationUtil" />
</weaver>
<aspects>
<aspect name="com.emmet.prem.pim.AspectJEditorUtil.AspectJEditorUtil" />
</aspects>
</aspectj>
As you can see the path towards my AspectJ class is correct but as soon as I start the server i'm getting the following error:
[PlatformInPlaceClassLoader@2d4f741c] warning register definition failed -- (RuntimeException) Cannot register non aspect: com$emmet$prem$pim$AspectJEditorUtil$AspectJEditorUtil , com.emmet.prem.pim.AspectJEditorUtil.AspectJEditorUtil
Cannot register non aspect: com$emmet$prem$pim$AspectJEditorUtil$AspectJEditorUtil , com.emmet.prem.pim.AspectJEditorUtil.AspectJEditorUtil
java.lang.RuntimeException: Cannot register non aspect: com$emmet$prem$pim$AspectJEditorUtil$AspectJEditorUtil , com.emmet.prem.pim.AspectJEditorUtil.AspectJEditorUtil
at org.aspectj.weaver.bcel.BcelWeaver.addLibraryAspect(BcelWeaver.java:219)
at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerAspects(ClassLoaderWeavingAdaptor.java:485)
at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerDefinitions(ClassLoaderWeavingAdaptor.java:304)
at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:171)
at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.initialize(Aj.java:340)
at org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.getWeavingAdaptor(Aj.java:345)
at org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver(Aj.java:319)
at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:113)
at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at de.hybris.bootstrap.loader.YURLClassLoader.loadRegisterAndResolveClass(YURLClassLoader.java:85)
at de.hybris.bootstrap.loader.YURLClassLoader.loadClass(YURLClassLoader.java:72)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
My AspectJEditorUtil looks as follows:
@Aspect
public class AspectJEditorUtil
{
@Around("call(* com.hybris.cockpitng.common.configuration.EditorConfigurationUtil.getColumns(..))")
public List<ListColumn> listColumn(final ProceedingJoinPoint joinPoint) throws Throwable
{
return (List<ListColumn>) joinPoint.proceed();
}
}
(Sidenote: There is no logic in it cause firstly I want to get it started then taking care of the logic)
Is it possible that AspectJ is somehow not able to handle java classes inside the backoffice/src folder?
Request clarification before answering.
I used to have a similar issue. I fixed it by using execution() instead of call() in the @ Around
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.