下载jboss-aop文件后(jboss 3.2.1 还没有集成AOP功能,4.0已经集成在一起了),同时最好安装一个ant工具,在docs\examples中新建test_aop目录。
    参照examples中的其它例子(constructor-execution构造器拦截, method-execution方法拦截等),建立自己的例子,build.xml文件基本可以不动(由ant调用,可能需要增加里面的classpath部分,例如加入dwr.jar,才能编译与dwr相关的应用类, 以及javax.servlet.jar等等其他jar),主要是通过改变 jboss-aop.xml的配置来体验 拦截器的效果。 可以直接在本路径cmd下执行ant命令,默认通过Driver来驱动例子。

    jboss自带的拦截器例子中 ,大都直接显示被拦截对象名字、方法名字、field的名字、构造函数名字等, 但是实际应用中我们不仅需要方法的名字,可能更需要被拦截方法的参数列表。 可以通过下面方式获得。

被拦截对象的方法

        public boolean test(String username, String passwd) {

            //正常的业务处理
            return true;
        }
       


//拦截器
   public Object invoke(Invocation invocation) throws Throwable
   {
      try
      {
         MethodInvocation mi = (MethodInvocation)invocation;        
         //System.out.println("<<< Entering MethodInterceptor for: " + mi.getMethod().toString());
           
         Object[] obj = mi.getArguments();    //取得参数对象
         System.out.println("username=" + obj[0].toString());         
         System.out.println("passwd=" + obj[1].toString());
       
         return invocation.invokeNext();
      }
      finally
      {
         System.out.println(">>> Leaving MethodInterceptor");
      }
   }


   脱离jboss环境单独应用AOP是可能的, 例如可以部署到tomcat下面。
    aop应用中, 被拦截对象的编译不能直接使用javac进行, 而应该使用ant进行编译,除了被拦截对象的.class文件后, jboss AOP还会根据jboss-aop.xml中的配置生成相应的其他class文件(这些类的名字可能非常怪异), 以及拦截器本身class文件。

    要想应用在tomcat下面最主要的就是让 aop组件能够找到jboss-aop.xml文件的位置。这需要设置系统变量“jboss.aop.path”。
     假设web应用的名字叫作"test_dwr", 可以将jboss-aop.xml copy在 webapps\test_dwr\WEB-INF下面,然后修改tomcat的启动文件, 在catalina.bat文件中,找到" %_EXECJAVA%   "  的位置(有多处), 然后在其后面的参数中加入 "  -Djboss.aop.path=../webapps\test_dwr\WEB-INF\jboss-aop.xml  "即可。 注意里面的test_dwr要根据情况改变。


            问题: 
        在和dwr进行配合使用时候, 对于 方法 的拦截是正常的, 但是 对于构造函数的拦截器没有得到及时的“植入”。 问题可能在于dwr创建对象的方式。还需要进一步研究。