2 Replies Latest reply on Jan 22, 2008 5:24 AM by Jens Weintraut

    The old ClassLoading problem with ICEfaces

    Jens Weintraut Apprentice


      is there any news about the CLassLoading issue with ICEfaces (see http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3989111)?

      I started to migrate from Seam 1.2.1, ICEfaces 1.6.3 to Seam 2.0.1CR1 and ICEfaces 1.7.0 DR#3. Given the information in seam2migrate.txt I removed all jars (except jboss-seam.jar) from the root of my .ear. So icefaces.jar, icefaces-comps etc. are now placed in WEB-INF\lib.

      That worked fine until I enabled the ice:menuBar with dynamic ice:menuItems. A stateless bean generates a menu structure (depending the user's role) like this:

      <ice:menuItems value="#{sideNavigationMenu.panelNavigationItems}" />

      public List<MenuItem> getPanelNavigationItems()

      There were two work-arounds:

      1. Change "UseJBossWebLoader" to "true" in deploy/*tomcat*/jboss-service.xml
      2. Put all jars from WEB-INF\lib to ear's root

        Is there a more elegant possibility? Is it OK to put all jars into the root of the ear?
        I tried it with UseJBossWebLoader=true and ran into the next exception which told me that there's sth wrong with a logger class (must have sth to do with the "commons-logging.jar" of ICEfaces; can't be found anymore or somewhat).

        Thanks in advance

        • 1. Re: The old ClassLoading problem with ICEfaces
          judy guglielmin Novice

          If you are using the async components or render push at all, you will want to load all 3 icefaces jars in the ear\lib. Using seam-gen for Seam-2.0.0.GA just set your icefaces.home property to your 1.7.0.DR3 directory, and use

          seam new-project
          to show you the proper configuration for this.

          If you aren't using any async stuff, then the icefaces example in the seam distribution is OK too.

          • 2. Re: The old ClassLoading problem with ICEfaces
            Jens Weintraut Apprentice

            Thanks for your reply. I don't use any async component.

            I built the icefaces example (BTW: the jboss repository doesn't have any icefaces dependency stored, I had to create a "local" repository). It uses the same structure as my app does. But the ICEfaces example doesn't use menuBar ;) And it is using an old version of ICEfaces so this isn't really helpful.

            So I think you first proposal could help me. And since I have never used seam-gen and don't want to create a new project I would really appreciate a description of the EAR structure that I should create.