I'm not sure if this is an AOP issue or just a generic classloading issue, but I think 
I have my MBeans set up correctly.

Here's the error:

  | java.lang.NoClassDefFoundError
  |     at java.lang.Class.forName0(Native Method)
  |     at java.lang.Class.forName(Class.java:141)
  |     at org.jboss.resource.pool.JCPool.start(JCPool.java:65)

Which points to my MBean code:

        public void start() throws Exception {
  |             for (int i = 0; i < size; i++) {
  |                     v.add(Class.forName(poolType));
  |                     System.out.println("Added " + poolType);
  |             }
  |             used = new boolean[v.size()];
  |     }

And here's my jboss-service.xml:

<server>
  |   <classpath codebase="deploy" archives="jcaopool_java.jar" />
  | 
  |   <mbean code="org.jboss.resource.pool.JCPool" 
name="jboss.jca:service=GenericPool">
  |      <attribute name="PoolType">org.jboss.resource.pool.JavaClient</attribute>
  |      <attribute name="Size">4</attribute>
  |   </mbean>
  |   <depends>service=AspectDeployer</depends>
  | </server>

Here's where the AOP comes in. I'm trying to intercept the construction of an object 
and return a JavaClient from my pooling MBean:

public class JavaClient {
  | 
  |     /**
  |      * 
  |      */
  |     public JavaClient() {
  |             super();
  |     }
  | 
  |     public void close() {
  |             
  |     }
  | 
  | }

So here's my two Interceptors, first ConstructorInterceptor:

        public Object invoke(Invocation invocation) throws Throwable {
  |             try {
  |                     
  |                     // Get JMX 
  |                     MBeanServer server = MBeanServerLocator.locateJBoss();
  |                     ObjectName name = new 
ObjectName("jboss.jca:service=GenericPool");
  |                     String s = (String) server.getAttribute(name, "instance");
  |                     return s;
  |             } finally {
  |                     System.out.println(">>> Leaving MethodInterceptor");
  |             }
  |     }

And CloseInterceptor,

  |     public Object invoke(Invocation invocation) throws Throwable {
  |             try {
  |                     Object o = invocation.targetObject;
  |                     Object[] os = {o};
  |                     
  |                     // Get JMX 
  |                     MBeanServer server = MBeanServerLocator.locateJBoss();
  |                     ObjectName name = new 
ObjectName("jboss.jca:service=GenericPool");
  |                     String s = (String) server.invoke(name, "returnInstance", os, 
new String[] {Object.class.getName()});
  |                     return s;
  |             } finally {
  |                     System.out.println(">>> Leaving CloseInterceptor");
  |             }
  |     }

And finally my jboss-aop.xml:

<?xml version="1.0" encoding="UTF-8"?>
  | <aop>
  | 
  |    <bind pointcut="execution(org.jboss.resource.pool.JavaClient->new())">
  |        <interceptor class="org.jboss.resource.pool.ConstructorInterceptor"/>
  |    </bind>
  | 
  |    <bind pointcut="execution(public void 
org.jboss.resource.pool.JavaClient->close())">
  |        <interceptor class="org.jboss.resource.pool.CloseInterceptor"/>
  |    </bind>
  | 
  | </aop>
  | 

The thing is, the 

points to the jar that has my already-AOPC'ed classes.

Is there something obvious I'm missing? Am I getting the deploy order wrong? I added 
the service=AspectDeployer to see if that was missing, but thinking about it, it 
shouldn't really matter if the deployer hasn't started if the classes are already 
pre-compiled.

Thanks for any ideas. I'm still using JB4DR2 and AOP beta1. Congrats on Beta2 as well. 
Very cool stuff!

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3835925#3835925

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3835925


-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to