JBoss Community

Re: JBoss as 6.0.0 final - Error when deploying war

created by Ales Justin in Beginner's Corner - View the full discussion

What about is you add some deployer similar to this:

 

import java.util.Collection;

 

import org.jboss.classloader.plugins.ClassLoaderUtils;

import org.jboss.classloader.spi.filter.ClassFilter;

import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;

import org.jboss.deployers.spi.DeploymentException;

import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;

import org.jboss.vfs.VirtualFile;

 

import javassist.util.proxy.MethodHandler;

import javassist.util.proxy.ProxyObject;

 

/**

* Filter on Javassist' MethodHandler and ProxyObject.

*

* @author <a href="mailto:ales.justin@jboss.org">Ales Justin</a>

*/

public class ExcludeAppJavassistDeployer extends WeldAwareMetadataDeployer<ClassLoadingMetaData>

{

   private String PO = ClassLoaderUtils.classNameToPath(ProxyObject.class);

   private String MH = ClassLoaderUtils.classNameToPath(MethodHandler.class);

        

   public ExcludeAppJavassistDeployer()

   {

      super(ClassLoadingMetaData.class, true);

   }

 

   protected void internalDeploy(VFSDeploymentUnit unit, ClassLoadingMetaData deployment, Collection<VirtualFile> wbXml) throws DeploymentException

   {

      ClassFilter excluded = deployment.getExcluded();

      String excludedPackages = deployment.getExcludedPackages();

      if (excluded == null && excludedPackages == null)

      {

         excluded = new ClassFilter()

         {

            public boolean matchesClassName(String className)

            {

               return (ProxyObject.class.getName().equals(className) || MethodHandler.class.getName().equals(className)) == false;

            }

 

            public boolean matchesResourcePath(String resourcePath)

            {

               return (PO.equals(resourcePath) || MH.equals(resourcePath)) == false;

            }

 

            public boolean matchesPackageName(String packageName)

            {

               return true;

            }

         };

         deployment.setExcluded(excluded);

      }

   }

}

Reply to this message by going to Community

Start a new discussion in Beginner's Corner at Community