1 Reply Latest reply on Jun 18, 2009 2:17 PM by flavia.rainone

    Deploy on JbossAS...

      Hi,


      i was trying to deploy a simple application aop on jboss and i have sucess when my aop.xml has just one advice like that :

      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>








      but when i try to put two advices on the same file aop.xml like that :


      <?xml version="1.0" encoding="UTF-8" standalone="yes"?>











      i haceived an error like that :



      12:04:40,309 INFO [WebappClassLoader] Illegal access: this web application inst
      ance has been stopped already. Could not load org.jboss.aop.advice.MonitorOperation_z_webAction_19130411. The eventu
      al following stack trace is caused by an error thrown for debugging purposes as
      well as to attempt to terminate the thread which caused the illegal access, and
      has no functional impact.
      java.lang.IllegalStateException
      at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
      der.java:1244)
      at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
      der.java:1204)
      at org.jboss.aop.advice.PerVmAdvice.generateInterceptor(PerVmAdvice.java
      :79)
      at org.jboss.aop.advice.PerVmAdvice.generateOptimized(PerVmAdvice.java:5
      6)
      at org.jboss.aop.advice.AdviceFactory.create(AdviceFactory.java:106)
      at org.jboss.aop.Advisor.createInterceptorChain(Advisor.java:1318)
      at org.jboss.aop.Advisor.pointcutResolved(Advisor.java:1932)
      at org.jboss.aop.MethodMatchInfo.applyBinding(MethodMatchInfo.java:152)
      at org.jboss.aop.MethodMatchInfo.simplePopulateBindings(MethodMatchInfo.
      java:113)
      at org.jboss.aop.MethodMatchInfo.populateBindings(MethodMatchInfo.java:9
      6)
      at org.jboss.aop.Advisor.finalizeMethodChain(Advisor.java:1543)
      at org.jboss.aop.ClassAdvisor.finalizeChains(ClassAdvisor.java:739)
      at org.jboss.aop.ClassAdvisor.createInterceptorChains(ClassAdvisor.java:
      607)
      at org.jboss.aop.ClassAdvisor$1.run(ClassAdvisor.java:304)
      at java.security.AccessController.doPrivileged(Native Method)
      at org.jboss.aop.ClassAdvisor.attachClass(ClassAdvisor.java:274)
      at org.jboss.aop.AspectManager.initialiseClassAdvisor(AspectManager.java
      :751)
      at org.jboss.aop.AspectManager.getAdvisor(AspectManager.java:732)
      at Actions.MyServletApp.(MyServletApp.java)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
      orAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
      onstructorAccessorImpl.java:27)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
      at java.lang.Class.newInstance0(Class.java:355)
      at java.lang.Class.newInstance(Class.java:308)
      at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
      java:1104)
      at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.jav
      a:806)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
      alve.java:129)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
      alve.java:175)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
      yAssociationValve.java:182)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
      e.java:84)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
      ava:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
      ava:102)
      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC
      onnectionValve.java:157)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
      ve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
      a:262)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
      :844)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
      ss(Http11Protocol.java:583)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
      6)
      at java.lang.Thread.run(Thread.java:619)

        • 1. Re: Deploy on JbossAS...
          flavia.rainone

          Hi,

          The class loading is failing at your tomcat instance. Taking a look at WebClassLoader:
          http://www.jdocs.com/tomcat/6.0.14/org/apache/catalina/loader/WebappClassLoader.html

          We can see that the illegal state is being thrown because the method stop of WebClassLoader was called at some point in the past, causing the started field to become false. Thus, when loadClass method checks for started filed value and sees it is false, it throws the exception:

          1241 // Log access to stopped classloader
          1242 if (!started) {
          1243 try {
          1244 throw new IllegalStateException();
          1245 } catch (IllegalStateException e) {
          1246 log.info(sm.getString("webappClassLoader.stopped", name), e);
          1247 }
          1248 }


          This hardly has anything to do with JBoss AOP. You need to find out what is triggering the call to WebappClassLoader.stop(), which happens before JBoss AOP tries to load the class.