0 Replies Latest reply on Jun 23, 2009 3:06 AM by Tar Antul

    Scoped ClassLoading + commons-collections.jar

    Tar Antul Newbie

      Dear JBoss Users,

      I am trying to migrate a war-application (that was already running on Tomcat) to JBoss5.1.0GA. After some revaluation of my web.xml file and some fighting with JBoss-classloading it is finally possible to deploy it. Yippee!

      BUT! Now I have a following problem while running the application:

      java.lang.NoSuchMethodError: org.apache.commons.collections.CollectionUtils.isNotEmpty(Ljava/util/Collection;)Z
      


      After some "investigation" I've found, that it's because of the jboss-5.1.0.GA/common/lib/commons-collections.jar version is prior to 3.2.

      My application is however configured for the isolated classloading by the "jboss-classloading.xml":

      <?xml version="1.0" encoding="UTF-8"?>
      
      <classloading xmlns="urn:jboss:classloading:1.0"
       name="reportal.war"
       domain="MyWar_Domain"
       export-all="NON_EMPTY"
       import-all="false">
      </classloading>
      


      Thats why I would expect my application to use a commons-collections-3.2.jar from WEB-INF/lib folder within the application war folder. What obviously is not the case.

      Replacing the jboss-5.1.0.GA/common/lib/commons-collections.jar with a newer version solves the problem. It is though not really a preferred option cause of the requirement I have - in an optimal way there should be as less customization on JBoss as possible.

      The question now is:
      Why isn't the applications own commons-collections.jar loaded?
      How do I can achieve it?