3 Replies Latest reply on Apr 13, 2008 2:05 PM by Pete Muir

    Install Packaging

    Tom Goring Apprentice

      Hi,


      I've deployed my application as a packaged EAR and have noticed that my framework overridden components are not getting installed.


      During development I have been deploying these (exploded)to:


      MY-EAR.ear/MY-WAR.war/WEB-INF/dev
      



      And for deployment under (zipped) under:


      MY-EAR.ear/MY-WAR.jar
      



      Here is one that is not being installed:



      @Scope(ScopeType.STATELESS)
      @BypassInterceptors
      @Name("org.jboss.seam.faces.renderer")
      @AutoCreate
      @Install(precedence = Install.APPLICATION)
      public class DBFaceletsRenderer extends FaceletsRenderer {
      ..
      }



      All my other components (without any @Install) are working fine.


      Any ideas?

        • 1. Re: Install Packaging
          Tom Goring Apprentice

          Hi,


          Ok I've got a little further with this.


          The problem is that I'm trying to override a seam-ui.jar component (which lives in the WAR lib dir).  Those classes are not in the classpath of the default jar located in the EAR.  I was getting away with it due to seam hot deploy dev dir.


          I guess the seam deployer was skipping my class as the base class was not in the classpath.


          So my question is now how should I define these WAR seam components? 
          Copy them into the WEB-INF/classes dir and include a seam.properties there ? Create a new jar in the WEB-INF lib dir ?


          Thanks


          Tom

          • 2. Re: Install Packaging
            Tom Goring Apprentice

            Hi,


            I got this working by deploying those particular classes to WEB-INF/classes and adding a seam.properties there.


            So, if you want to override a component from seam-ui.jar you need to make sure it gets packaged in the war. 


            It would have been nice to get a class not found when the application started up ... would have saved some time !

            • 3. Re: Install Packaging
              Pete Muir Master

              Unless you put a seam.properties in the root of the archive/classpath you want scanning, Seam won't even look at the archive for classes - so it don't get as far as throwing a CNFE. This is an optimisation for startup so that Seam doesn't have to scan every archive in the app server!