1 Reply Latest reply on Dec 1, 2006 5:01 AM by Stefano Sabbadin

    Isolating web app classpath

    Stefano Sabbadin Newbie


      I have two web apps:
      - an older web app (directory app-prod.war in server/default/deploy)
      - a newer web app (directory app-dev.war in server/default/deploy)
      the two web apps are the same project, an older and a newer release.

      The jars inside every WEB-INF/lib are the same, the newer has obviously new classes or new methos/attributes.

      I use:
      - JDK 1.4.2
      - JBoss 3.2.6
      - Spring 1.2.8
      - Struts 1.2.9
      - Web app version 2.4

      When I start JBoss, the app-dev web app cannot deploy correctly because starts after app-prod web app. I think uses in its classpath the jars in WEB-INF/lib of the oldest web app: in fact it doesn't see the changes described in its Spring XML files because uses the jars of app-prod, which is inconsistent with XML files of more recent app-dev.

      If I undeploy app-prod.war and reboot JBoss, app-dev.war is deployed correctly.

      My questions are:
      1) is there any JBoss configuration to set to force every web app uses in its classpath only the jar specified in the shared libraries and its WEB-INF/lib or WEB-INF/classes and not the jar specified in other web apps?

      2) is there any JBoss configuration to set to force insert of jars in WEB-INF/lib and classes in WEB-INF/classes in classpath before shared libraries to prevent version incompatibility with jar's older version existing for example in server/default/lib?

      NOTE: the same web apps in Tomcat 5.0.28 standalone starts correctly without problems.