7 Replies Latest reply on Feb 9, 2009 8:01 AM by ramay

    Could not instantiate Seam component: register with Maven2 seam registration example

    ramay
      When trying to run seam registration example that has been built using Maven on JBoss 4.2.x facing the following error message after clicking the 'register' button
      
      -------------------------------------------------------------------------------------
      javax.servlet.ServletException: Could not instantiate Seam component: register
              javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
              org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      
      root cause
      
      org.jboss.seam.InstantiationException: Could not instantiate Seam component: register
              org.jboss.seam.Component.newInstance(Component.java:2106)
              org.jboss.seam.Component.getInstance(Component.java:1988)
              org.jboss.seam.Component.getInstance(Component.java:1950)
              org.jboss.seam.Component.getInstance(Component.java:1944)
              org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
              org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
              org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166)
              org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53)
              javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
              com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
              org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
              org.jboss.el.parser.AstValue.getTarget(AstValue.java:34)
              org.jboss.el.parser.AstValue.invoke(AstValue.java:95)
              org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
              com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
              javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
              com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
              javax.faces.component.UICommand.broadcast(UICommand.java:383)
              javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
              javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
              com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
              com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
              com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
              javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
              org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      
      root cause
      
      javax.naming.NameNotFoundException: RegisterAction not bound
              org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
              org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
              org.jnp.server.NamingServer.getObject(NamingServer.java:543)
              org.jnp.server.NamingServer.lookup(NamingServer.java:267)
              org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
              org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
              javax.naming.InitialContext.lookup(InitialContext.java:392)
              org.jboss.seam.Component.instantiateSessionBean(Component.java:1367)
              org.jboss.seam.Component.instantiate(Component.java:1331)
              org.jboss.seam.Component.newInstance(Component.java:2084)
              org.jboss.seam.Component.getInstance(Component.java:1988)
              org.jboss.seam.Component.getInstance(Component.java:1950)
              org.jboss.seam.Component.getInstance(Component.java:1944)
              org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
              org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
              org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166)
              org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53)
              javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
              com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
              org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
              org.jboss.el.parser.AstValue.getTarget(AstValue.java:34)
              org.jboss.el.parser.AstValue.invoke(AstValue.java:95)
              org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
              com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
              javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
              com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
              javax.faces.component.UICommand.broadcast(UICommand.java:383)
              javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:447)
              javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
              com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
              com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
              com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
              javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
              org|.jboss|.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      -------------------------------------------------------------------------------------
      
      Please find below the pom.xml that is being used
      
      <?xml version="1.0" encoding="UTF-8"?>
      
      <project>
              <modelVersion>4.0.0</modelVersion>
              <groupId>seamregn</groupId>
              <artifactId>seamregn</artifactId>
              <packaging>war</packaging>
              <version>1.0</version>
      
              <repositories>
                      <repository>
                      <id>jboss-seam</id>
                      <url>http://repository.jboss.org/maven2</url>
                      </repository>
              </repositories>
      
      
              <build>
                      <plugins>
                                <plugin>
                                      <artifactId>maven-compiler-plugin</artifactId>
                                      <inherited>true</inherited>
                                      <configuration>
                                              <source>1.6</source>
                                              <target>1.6</target>
                                      </configuration>
                              </plugin>
      
                              <plugin>
                                       <groupId>org.apache.maven.plugins</groupId>
                                      <artifactId>maven-war-plugin</artifactId>
                               <configuration>
                              <modules>
                                      <webModule>
                                      <groupId>${project.groupId}</groupId>
                                      <artifactId>seamregn</artifactId>
                                      <contextRoot>/seamregn</contextRoot>
                                      </webModule>
                               </modules>
                               <jboss>
                                      <version>4</version>
                                      <unauthenticated-principal>guest</unauthenticated-principal>
                               </jboss>
      
                              </configuration>
      
                              </plugin>
                      </plugins>
              </build>
              
              <prerequisites>
                      <maven>2.0.9</maven>
              </prerequisites>
      
              <properties>
                      <seam.version>2.1.1.GA</seam.version>
              </properties>
      
              <dependencies>
                      <dependency>
                              <groupId>org.jboss.seam</groupId>
                              <artifactId>jboss-seam</artifactId>
                              <version>${seam.version}</version>
                              <exclusions>
                                      <exclusion>
                                              <groupId>javax.servlet</groupId>
                                              <artifactId>servlet-api</artifactId>
                                      </exclusion>
                                      <exclusion>
                                              <groupId>jboss</groupId>
                                              <artifactId>javassist</artifactId>
                                      </exclusion>
                              </exclusions>
                      </dependency>
                      <dependency>
                              <groupId>org.jboss.seam</groupId>
                              <artifactId>jboss-seam-ui</artifactId>
                              <version>${seam.version}</version>
                              <exclusions>
                                      <exclusion>
                                              <groupId>javax.servlet</groupId>
                                              <artifactId>servlet-api</artifactId>
                                      </exclusion>
                                      <exclusion>
                                              <groupId>javax.el</groupId>
                                              <artifactId>el-api</artifactId>
                                      </exclusion>                              
      
                              </exclusions>
                      </dependency>
                      <dependency>
                              <groupId>org.jboss.el</groupId>
                              <artifactId>jboss-el</artifactId>
                              <version>unknown</version>
                              <scope>system</scope>
          <systemPath>/home/iw/lib/jboss-el.jar</systemPath> 
                      </dependency>
                      <dependency>
                              <groupId>org.jboss.seam</groupId>
                              <artifactId>jboss-seam-ioc</artifactId>
                              <version>${seam.version}</version>
                              <exclusions>
                                      <exclusion>
                                              <groupId>javax.servlet</groupId>
                                              <artifactId>servlet-api</artifactId>
                                      </exclusion>
                                      <exclusion>
                                              <groupId>javax.el</groupId>
                                              <artifactId>el-api</artifactId>
                                      </exclusion>                                      
                              </exclusions>
                      </dependency>
                      <dependency>
                              <groupId>org.jboss.seam</groupId>
                              <artifactId>jboss-seam-debug</artifactId>
                              <version>${seam.version}</version>
                              <exclusions>
                                      <exclusion>
                                              <groupId>javax.servlet</groupId>
                                              <artifactId>servlet-api</artifactId>
                                      </exclusion>
                                      <exclusion>
                                              <groupId>javax.el</groupId>
                                              <artifactId>el-api</artifactId>
                                      </exclusion>                                      
                              </exclusions>
                      </dependency>
                      <dependency>
                              <groupId>org.hibernate</groupId>
                              <artifactId>hibernate-validator</artifactId>
                              <version>3.1.0.GA</version>
                              <scope>provided</scope>
                      </dependency>
                      <dependency>
                              <groupId>javax.persistence</groupId>
                              <artifactId>persistence-api</artifactId>
                              <scope>provided</scope>
                              <version>1.0</version>
                      </dependency>
                      <dependency>
                              <groupId>javax.servlet</groupId>
                              <artifactId>servlet-api</artifactId>
                              <version>2.5</version>
                              <scope>provided</scope>
                      </dependency>
                      <dependency>
                              <groupId>postgresql</groupId>
                              <artifactId>postgresql</artifactId>
                              <version>8.3-603.jdbc4</version>
                              <scope>provided</scope>
                      </dependency>
                      <dependency>
                              <groupId>javax.ejb</groupId>
                              <artifactId>ejb-api</artifactId>
                              <version>3.0</version>
                              <scope>provided</scope>
                      </dependency>     
                      <dependency>
                              <groupId>org.apache.myfaces.core</groupId>
                              <artifactId>myfaces-api</artifactId>
                              <version>1.2.5</version>
                              <scope>provided</scope>
                      </dependency>
                      <dependency>
                              <groupId>org.apache.myfaces.core</groupId>
                              <artifactId>myfaces-impl</artifactId>
                              <version>1.2.5</version>
                              <scope>provided</scope>
                      </dependency>
      
                      
                      <!-- ####################################################### -->
                      <!-- Test Scoped dependencies                                                                 -->
                      <!-- Runs integration tests using SeamTest and JBoss          -->
                      <!-- Embedded framework                                                                               -->
                      <!-- ####################################################### -->  
                      <dependency>
                          <groupId>org.testng</groupId>
                          <artifactId>testng</artifactId>
                          <version>5.8</version>
                          <scope>test</scope>
                           <classifier>jdk15</classifier>
                      </dependency>
                      <dependency>
                              <groupId>org.eclipse.jdt</groupId>
                              <artifactId>core</artifactId>
                              <version>3.2.0.658</version>
                              <scope>test</scope>
                      </dependency> 
                      <dependency>
                              <groupId>org.jboss.embedded</groupId>
                              <artifactId>hibernate-all</artifactId>
                              <version>beta3.SP3</version>
                              <scope>test</scope>
                      </dependency>
                      <dependency>
                              <groupId>org.jboss.embedded</groupId>
                              <artifactId>jboss-embedded-all</artifactId>
                              <version>beta3.SP3</version>
                              <scope>test</scope>
                      </dependency>             
                      <dependency>
                              <groupId>org.jboss.embedded</groupId>
                              <artifactId>jboss-embedded-api</artifactId>
                              <version>beta2</version>
                              <scope>test</scope>
                      </dependency>                     
                      <dependency>
                              <groupId>org.jboss.embedded</groupId>
                              <artifactId>thirdparty-all</artifactId>
                              <version>beta3.SP2</version>
                              <scope>test</scope>
                      </dependency>             
                      <dependency>
                      <groupId>javax.activation</groupId>
                      <artifactId>activation</artifactId>
                      <version>1.1</version>
                      <scope>test</scope>
                      </dependency> 
              </dependencies>                   
      </project>
      
      
      We have also added JBoss-el.jar and hibernate-core-3.3.0.jar to WEB-INF/lib to resolve other errors.
      
      Any help is appreciated.
      
      



        • 1. Re: Could not instantiate Seam component: register with Maven2 seam registration example
          ramay

          Here it is additional information
          
          
          ---------------application.xml
          
          <?xml version="1.0" encoding="UTF-8"?>
          <application xmlns="http://java.sun.com/xml/ns/javaee" 
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                                           http://java.sun.com/xml/ns/javaee/application_5.xsd"
                                           version="5">
                       
          <display-name>Seam Registration</display-name>
          
          <module>
                  <web>
                          <web-uri>seamregn-1.0.war</web-uri>
                           <context-root>/seamregn-1.0</context-root>
                  </web>
          </module>
          
           </application>
          
          
          
          ------------------jboss-app.xml
          
          <?xml version="1.0" encoding="UTF-8"?>
            <!DOCTYPE jboss-app
              PUBLIC "-//JBoss//DTD J2EE Application 4.2//EN"
              "http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd">
              
          <jboss-app>
                <loader-repository> 
                seam.jboss.org:loader=seamregn-1.0
                </loader-repository> 
          </jboss-app>
          
          -----------components.xml
          
          <?xml version="1.0" encoding="UTF-8"?>
          <components xmlns="http://jboss.com/products/seam/components"
                      xmlns:core="http://jboss.com/products/seam/core"
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                      xsi:schemaLocation=
                          "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd 
                           http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd">
              <core:init jndi-pattern="#{ejbName}/local"/>
          </components>
          
          ------------
          
          Empty seam.properties file is also present in resources directory. 
          
          
          
          



          • 2. Re: Could not instantiate Seam component: register with Maven2 seam registration example

            Are you building a jar file which has all your seam components and then have seam.properties in your META-INF folder? There is a very good explanation on how you can do this http://seamframework.org/Community/InfoCreatingSeamProjectInMaven2

            • 3. Re: Could not instantiate Seam component: register with Maven2 seam registration example
              ramay

              Thanks.


              We are building a war instead of ear which will have all seam components, WEB-INF, META-INF etc.


              Yes, seam registration example by default provides an ear (with ant).


              The interest is to build War with Maven2 as of now. In future we could go to ear though.

              • 4. Re: Could not instantiate Seam component: register with Maven2 seam registration example

                Did you annotate your RegisterAction with @Stateless ?
                Please show us your registerAction.

                • 5. Re: Could not instantiate Seam component: register with Maven2 seam registration example
                  ramay

                  Please find registerAction.java below.


                  --------------------------------
                  import java.util.List;


                  import javax.ejb.Stateless;
                  import javax.persistence.EntityManager;
                  import javax.persistence.PersistenceContext;
                  //import javax.faces.application.FacesMessages;


                  import org.jboss.seam.annotations.In;
                  import org.jboss.seam.annotations.Logger;
                  import org.jboss.seam.annotations.Name;
                  import org.jboss.seam.faces.FacesMessages;
                  import org.jboss.seam.log.Log;


                  @Stateless
                  @Name(register)
                  public class RegisterAction implements Register
                  {


                     @In
                     private User user;
                    
                     @PersistenceContext
                     private EntityManager em;
                    
                     @Logger
                     private static Log log;
                    
                     public String register()
                     {
                  ............................(Not pasting rest of the code)
                     }
                  }


                  • 6. Re: Could not instantiate Seam component: register with Maven2 seam registration example

                    Remove @Stateless and deploy your application as a war file. It should work.

                    • 7. Re: Could not instantiate Seam component: register with Maven2 seam registration example
                      ramay

                      Hi Binesh,


                      the decision has been made to go with ear instead of war and hence did not try your inputs. Apologies for late reply


                      With maven2 and ear, I am  able to compile and package.


                      Thanks
                      Rama