14 Replies Latest reply on Jan 30, 2011 2:30 PM by Michel Werren

    seam-faces does not run on GlassFish

    Naresh Bhatia Newbie

      I have a minimal JSF application (a simple login form) that does not use Seam. To start using Seam I simply added the following maven dependency as recommended here (no changes to code):


      <dependency>
         <groupId>org.jboss.seam.faces</groupId>
         <artifactId>seam-faces</artifactId>
         <version>3.0.0.Alpha3</version>
      </dependency>
      



      Now when I deploy this application to GlassFish, it gives me the following exception:



      com.sun.enterprise.admin.cli.CommandException: remote failure: Exception while loading the app : java.lang.RuntimeException: Unable to load EJB module.
      DeploymentContext does not contain any EJB  Check archive to ensure correct packaging for C:/apps/glassfish-3.0.1/glassfish/domains/domain1/applications/minimal-jsf

      Can somebody help me solve this issue?


      (Note: JBoss 6 has no problems with this)

        • 1. Re: seam-faces does not run on GlassFish
          Naresh Bhatia Newbie

          Anyone? Should I post my example or file a JIRA bug?

          • 2. Re: seam-faces does not run on GlassFish
            Nicklas Karlsson Master

            You should probably file a GF-JIRA. Although it's always possible that they are more correct since I think the JBoss deployment structure is still more flattened than is's supposed to be.

            • 3. Re: seam-faces does not run on GlassFish
              Naresh Bhatia Newbie

              Well, I am hoping that the committers are trying to keep this implementation as portable as possible. Since this seems to be a very fundamental portability issue, I am offering to help by supplying an example.

              • 4. Re: seam-faces does not run on GlassFish
                Fabricio Lemos Newbie

                Which version of Glassfish are you using? I deploy an application with seam-faces 3.0.0.Alpha3 to Glassfish 3.0.0 and 3.0.1 without any problems.


                Is your application a WAR or EAR?

                • 5. Re: seam-faces does not run on GlassFish
                  Naresh Bhatia Newbie

                  seam-faces 3.0.0.Alpha3 and glassfish-3.0.1. My application is a WAR. Would you mind trying out my small maven project - it is available here?

                  • 6. Re: seam-faces does not run on GlassFish
                    Fabricio Lemos Newbie

                    Naresh, I tried your app and had the same error. To fix it you should add slf4j to the classpath.


                    Just add




                            <dependency>
                                <groupId>org.slf4j</groupId>
                                <artifactId>slf4j-log4j12</artifactId>
                                <version>1.5.9.RC1</version>
                            </dependency>



                    to you pom.xml and you´ll be ok.

                    • 7. Re: seam-faces does not run on GlassFish
                      Naresh Bhatia Newbie

                      Fabricio, that was it! Thanks so much. Just out of curiosity, how did you find this problem?

                      • 8. Re: seam-faces does not run on GlassFish
                        Fabricio Lemos Newbie
                        Glassfish exception "DeploymentContext does not contain any EJB" is misleading, but then I saw on log:

                        SEVERE|glassfish3.0.1|global|_ThreadID=20;_ThreadName=Thread-1;|Class [ Lorg/slf4j/Logger; ] not found. Error while loading [ class org.jboss.seam.faces.context.conversation.ConversationBoundaryInterceptor ]|#]

                        WARNING|glassfish3.0.1|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=20;_ThreadName=Thread-1;|Error in annotation processing: java.lang.NoClassDefFoundError: Lorg/slf4j/Logger;|#]

                        SEVERE|glassfish3.0.1|global|_ThreadID=20;_ThreadName=Thread-1;|Class [ Lorg/slf4j/Logger; ] not found. Error while loading [ class org.jboss.seam.faces.context.conversation.ConversationBoundaryInterceptor ]|#]

                        WARNING|glassfish3.0.1|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=20;_ThreadName=Thread-1;|Error in annotation processing: java.lang.NoClassDefFoundError: Lorg/slf4j/Logger;|#]

                        SEVERE|glassfish3.0.1|global|_ThreadID=20;_ThreadName=Thread-1;|Class [ Lorg/slf4j/Logger; ] not found. Error while loading [ class org.jboss.seam.international.locale.AvailableLocales ]|#]

                        WARNING|glassfish3.0.1|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=20;_ThreadName=Thread-1;|Error in annotation processing: java.lang.NoClassDefFoundError: Lorg/slf4j/Logger;|

                        • 9. Re: seam-faces does not run on GlassFish
                          Naresh Bhatia Newbie

                          That's great! Thanks for the tip.

                          • 10. Re: seam-faces does not run on GlassFish
                            Ryan Slominski Newbie

                            I had the same problem, but the solution mentioned above only lead me to another problem:  Now I get the following error:




                            SEVERE: org/jboss/weld/extensions/beanManager/BeanManagerProvider
                            java.lang.NoClassDefFoundError: org/jboss/weld/extensions/beanManager/BeanManagerProvider
                                    at java.lang.ClassLoader.defineClass1(Native Method)
                                    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
                                    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
                                    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
                                    at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:920)



                            So I figured this meant I needed to add the weld extension jar.  So I did.  And then it complained about the log4j jar.  So I added that.  Now it is complaining about the jboss logger:




                            Caused by: org.jboss.weld.exceptions.DefinitionException: Exception #0 :java.lang.NoClassDefFoundError: org/jboss/logging/Logger
                                    at org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:55)
                                    at org.jboss.weld.bootstrap.events.BeforeBeanDiscoveryImpl.fire(BeforeBeanDiscoveryImpl.java:66)



                            This is logger dependency hell.  I searched google for the JBoss Common Client jar (from java2.com) and now GlassFish gives the following:




                            Caused by: org.jboss.weld.exceptions.DefinitionException: Exception #0 :null
                                    at org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:45)
                                    at org.jboss.weld.bootstrap.events.ProcessAnnotatedTypeImpl.fire(ProcessAnnotatedTypeImpl.java:44)





                            • 11. Re: seam-faces does not run on GlassFish
                              Fabricio Lemos Newbie

                              Are you using Maven? Weld extension is imported, transitively, when you add seam-faces. Log4j is imported with slf4j. And about jboss logger, I do not have it in my classpath.

                              • 12. Re: seam-faces does not run on GlassFish
                                Ryan Slominski Newbie

                                I'm not using Maven and I don't really want to switch my project over to maven just to try out this Alpha library.  I went to the download page here: http://seamframework.org/Seam3/Downloads.  Unfortunately Seam Faces doesn't have a distribution with dependencies so I just downloaded the two jars (api and impl) available from the linked page and added them to my project.  However, the jars by themselves are not enough.


                                Any idea what library I'm supposed to obtain to resolve the NoClassDefFoundError: org/jboss/logging/Logger?

                                • 13. Re: seam-faces does not run on GlassFish
                                  sebastianovide Newbie

                                  I am having the same problem.


                                  I've started with the jboss-javaee6-webapp archetype (which contains the org.slf4j dependencies ) and simply added


                                        <dependency>
                                              <groupId>org.jboss.seam.faces</groupId>
                                              <artifactId>seam-faces</artifactId>
                                              <version>3.0.0.Beta1</version>
                                        </dependency



                                  this is what I get


                                  SEVERE: Class [ Lorg/jboss/logging/Logger; ] not found. Error while loading [ class org.jboss.seam.international.timezone.DefaultTimeZoneProducer ]
                                  WARNING: Error in annotation processing: java.lang.NoClassDefFoundError: Lorg/jboss/logging/Logger;
                                  SEVERE: Class [ Lorg/jboss/logging/Logger; ] not found. Error while loading [ class org.jboss.seam.faces.context.conversation.ConversationBoundaryInterceptor ]
                                  WARNING: Error in annotation processing: java.lang.NoClassDefFoundError: Lorg/jboss/logging/Logger;
                                  SEVERE: Class [ Lorg/jboss/logging/Logger; ] not found. Error while loading [ class org.jboss.seam.international.timezone.DefaultTimeZoneProducer ]
                                  WARNING: Error in annotation processing: java.lang.NoClassDefFoundError: Lorg/jboss/logging/Logger;
                                  SEVERE: Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method
                                  java.lang.RuntimeException: Unable to load EJB module.  DeploymentContext does not contain any EJB  Check archive to ensure correct packaging for C:\Documents and Settings\sebastian ovide\My Documents\NetBeansProjects\mavenproject1\mavenproject3\target\mavenproject3
                                          at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:133)>



                                  any ideas ?

                                  • 14. Re: seam-faces does not run on GlassFish
                                    Michel Werren Newbie

                                    I had the same error and fix that with the following dependency :



                                    <dependency>
                                        <groupId>org.jboss.logging</groupId>
                                        <artifactId>jboss-logging-logmanager</artifactId>
                                        <version>2.2.0.CR2</version>
                                    </dependency>



                                    But after this i got the a NoClassDefFoundError


                                    [#|2011-01-30T20:09:48.286+0100|WARNING|glassfish3.0.1|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=25;_ThreadName=Thread-1;|Error in annotation processing: java.lang.NoClassDefFoundError: org/joda/time/DateTimeZone|#]




                                    With the further dependency it works well :


                                    <dependency>
                                        <groupId>joda-time</groupId>
                                        <artifactId>joda-time</artifactId>
                                        <version>1.6</version>
                                    </dependency>



                                    I hope this help maybe ...


                                    Greez