Re: [aspectwerkz-user] Integarting ASPECTWERKZ 2.0 Offline weaving with Weblogic Portal Application

Raman Mishra <[email protected]> Thu, 2 Jun 2005 20:55:04 +0800
Newsgroups gmane.comp.java.aspectwerkz.user
Message-ID <[email protected]>
Today I tried with the option *-Xverbose:load* with BEA WebLogic JRockit(TM) 
1.4.2_05, but it is not displaying the jar file name from which the class is 
loaded. 
 If I remove the trove-1.0.2.jar from the APP-INF/lib folder it gives 
following exception :
 java.lang.NoClassDefFoundError: gnu/trove/TIntObjectHashMap
at org.codehaus.aspectwerkz.reflect.impl.java.JavaClassInfoRepository
.<clinit>(JavaClassInfoRepository.java:27)
at org.codehaus.aspectwerkz.reflect.impl.java.JavaClassInfo.getClassInfo(
JavaClassInfo.java:167)
at 
org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.compileJoinPoint
(JoinPointManager.java:174)
at 
org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.loadJoinPoint
(JoinPointManager.java:118)
at db.DbController.aw$initJoinPoints(DbController.jpf)
at db.DbController.<clinit>(DbController.jpf)
  and also if I put trove-1.0.2.jar in weblogic startup class path it works 
fine.
 
 On 6/1/05, Alexandre Vasseur <[email protected]> wrote: 
> 
> Mindstorm, APP-INF is a weblogic thing so that s fine.
> 
> Raman, I did replied to a private email yesterday:
> the source is:
> TObjectIntHashMap exprIndexToTargetIndexSoFar =
> (TObjectIntHashMap) context.m_exprIndexToTargetIndex.clone();
> are you having a different trove.jar in your classpath - can you check
> with -verbose:class
> or something
> 
> and you then tell that you have trove in APP-INF.
> The question is :do you have it elsewhere in the weblogic dist f.e.,
> or even hidden in some other jar etc.
> 
> So please do as I said: use -verbose:class to see from where trove
> classes are loaded from.
> 
> Alex
> 
> On 6/1/05, Alexandru Popescu <[email protected]> wrote:
> > #: on behalf of Raman Mishra :: 6/1/2005 3:55 PM :#
> > > Hi ,
> > >
> > > We are trying to use aspectwerkz(offline mode) in our weblogic portal
> > > application. We are using aspect for each web and ejb modules.
> > >
> > > But when we tried to access any page it's giving following exception
> > >
> > > java.lang.IllegalAccessError: tried to access method
> > > java.lang.Object.clone()Ljava/lang/Object;
> > > from class org.codehaus.aspectwerkz.expression.ArgsIndexVisitor
> > > at org.codehaus.aspectwerkz.expression.ArgsIndexVisitor.visit (
> > > ArgsIndexVisitor.java:93)
> > > at 
> org.codehaus.aspectwerkz.expression.ast.ASTPointcutReference.jjtAccept(
> > > ASTPointcutReference.java:33)
> > > at org.codehaus.aspectwerkz.expression.ExpressionVisitor.visit(
> > > ExpressionVisitor.java :133)
> > > at org.codehaus.aspectwerkz.expression.ast.ASTExpression.jjtAccept(
> > > ASTExpression.java:18)
> > > at org.codehaus.aspectwerkz.expression.ExpressionVisitor.visit(
> > > ExpressionVisitor.java:121)
> > > at org.codehaus.aspectwerkz.expression.ExpressionVisitor.match (
> > > ExpressionVisitor.java:107)
> > > at
> > > 
> org.codehaus.aspectwerkz.expression.ArgsIndexVisitor.updateContextForRuntimeInformation
> > > (ArgsIndexVisitor.java:62)
> > > at
> > > 
> org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.getAdviceInfoContainerForJoinPoint
> (
> > > JoinPointManager.java:304)
> > > at
> > > 
> org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.compileJoinPoint
> > > (JoinPointManager.java:230)
> > > at
> > > 
> org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.loadJoinPoint
> (
> > > JoinPointManager.java:118)
> > > at db.DbController.aw$initJoinPoints(DbController.jpf)
> > > at db.DbController.<clinit>(DbController.jpf)
> > > at java.lang.Class.forName0(Native Method)
> > > at java.lang.Class.forName( Class.java:140)
> > > at 
> com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.processActionCreate(
> > > PageFlowRequestProcessor.java:132)
> > > at org.apache.struts.action.RequestProcessor.process(
> RequestProcessor.java
> > > :268)
> > > at com.bea.wlw.netui.pageflow .PageFlowRequestProcessor.process(
> > > PageFlowRequestProcessor.java:651)
> > > at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(
> > > AutoRegisterActionServlet.java:527)
> > > at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process (
> > > PageFlowActionServlet.java:152)
> > > at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java
> :507)
> > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> > > at javax.servlet.http.HttpServlet.service (HttpServlet.java:853)
> > > at 
> weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(
> > > ServletStubImpl.java:971)
> > > at weblogic.servlet.internal.ServletStubImpl.invokeServlet(
> > > ServletStubImpl.java:402)
> > > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
> > > at weblogic.servlet.internal.FilterChainImpl.doFilter(
> FilterChainImpl.java
> > > :27)
> > > at com.bea.p13n.servlets.PortalServletFilter.doFilter(
> > > PortalServletFilter.java :313)
> > > at weblogic.servlet.internal.FilterChainImpl.doFilter(
> FilterChainImpl.java
> > > :27)
> > > at
> > > 
> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run
> (
> > > WebAppServletContext.java:6356)
> > > at weblogic.security.acl.internal.AuthenticatedSubject.doAs (
> > > AuthenticatedSubject.java:317)
> > > at weblogic.security.service.SecurityManager.runAs(
> SecurityManager.java:118)
> > > at weblogic.servlet.internal.WebAppServletContext.invokeServlet(
> > > WebAppServletContext.java:3635)
> > > at weblogic.servlet.internal.ServletRequestImpl.execute (
> > > ServletRequestImpl.java:2585)
> > > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
> > > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
> > >>
> > >
> > >
> > > My aop.xml is
> > >
> > > <!DOCTYPE aspectwerkz PUBLIC
> > > "-//AspectWerkz//DTD//EN"
> > > "http://aspectwerkz.codehaus.org/dtd/aspectwerkz.dtd ">
> > >
> > > <aspectwerkz>
> > > <system id="farmework">
> > > <pointcut name="loggingRelated" expression="within(aop.*)
> > > OR within(example.*)
> > > OR execution(* db..*.getLog())
> > > OR execution(* ejb..*.getLog())
> > > OR within(common..*)
> > > "/>
> > >
> > >
> > > <pointcut name="avoidTrace" expression="!loggingRelated"/>
> > >
> > > <!-- Profiling for ejb,web modules-->
> > > <aspect class="aop.ProfilingIdiom">
> > > <pointcut name="p3" expression="(execution(* db*..*.*(..)) OR
> > > execution(* ejb..*Bean.*(..)) )AND
> > > avoidTrace"
> > > />
> > > <advice name="profile(StaticJoinPoint jp)" type="around" 
> bind-to="p3"/>
> > > </aspect>
> > > <!-- Logging for web modules-->
> > > <aspect class=" aop.LoggingIdiom">
> > > <pointcut name="p2"
> > > expression="execution(* db..*.*(..)) AND
> > > avoidTrace"
> > > />
> > > <advice name="traceWithParams(JoinPoint jp, aop.Loggable loggable)"
> > > type="around"
> > > bind-to="p2 AND target(loggable)" />
> > > </aspect>
> > >
> > > <!-- Logging for ejb modules-->
> > > <aspect class="example.logging.LoggingAspect" 
> deployment-model="perJvm">
> > > <pointcut name="allMethods"
> > > expression="execution(* ejb..*Bean.*(..))"/>
> > > <advice name="log" type="around" bind-to="allMethods" />
> > > </aspect>
> > >
> > > <!--Loggable implementation for web module, it will implement Loggable
> > > interface-->
> > > <mixin class="aop.LoggableImpl"
> > > deployment-model="perClass"
> > > bind-to="within(db..*) OR within(controls..*) AND !within(aop.*)"/>
> > > </system>
> > > </aspectwerkz>
> > >
> > > what could be the possible reason for this ?
> > > The following jar files in our APP-INF/lib folder
> > > aspectwerkz-2.0.jar
> > > aspectwerkz-core-2.0.jar
> > > aspectwerkz-extensions-2.0.jar
> > > aspectwerkz-jdk14-2.0.jar
> > > qdox-1.4.jar
> > > concurrent-1.3.1.jar
> > > trove-1.0.2.jar
> > > jrexx-1.1.1.jar
> > > and also we tried with the following jars
> > > aspectwerkz-2.0.jar
> > > aspectwerkz-core-2.0.jar
> > > aspectwerkz-extensions-2.0.jar
> > > aspectwerkz-nodeps-jdk14-2.0.jar
> > > but in both ways giving same exception.
> > > But if we put all the jars in the weblogic server startup classpath 
> then
> > > it's working.
> > > I checked the list of jars on
> > > http://aspectwerkz.codehaus.org/faq.html#other_nodeps , but it's not
> > > working.
> > > what all jars we need to put in APP-INF/lib folder or WEB-INF/lib 
> folder?
> > >
> > >
> > > Thanks
> > >
> > > Raman
> > >
> >
> > What is APP-INF? (i don't think this is a standard). I think the jars 
> should be included in your ear
> > (since you have both ejbs and web)
> >
> > :alex |.::the_mindstorm::.|
> >
>