1 Reply Latest reply on Mar 21, 2007 6:29 AM by Ganda Ganda

    JSF + Sun Java Studio Creator + JBoss

    Nathan McMinn Newbie

      I am developing a small application to run on JBoss/Oracle, using Sun Java Studio Creator. I've made the required changes to both JBoss and my .war file, by doing the following:

      1. Copied jstl.jar and standard.jar from my JSC installation into <jboss_home>/server/<server_name>/deploy/jbossweb-tomcat55.sar.

      2. Removed jsf-api.jar and jsf-impl.jar from the application .war file.

      3. Added the following lines to web.xml


      <listener-class>org.apache.myfaces.webapp.StartupServletContextListener
      </listener-class>


      My datasource is correctly configured in oracle-ds.xml, and the application can read from the DB.

      I am running on Java 1.5.0_06, JBoss 4.0.4, and Oracle 9i. The app is being developed in Java Studio Creator 2. I am using the DataDirect JDBC driver for Oracle.

      Now, on to the problem. The app .war file deploys without issue. The first page of the app loads properly, displaying the data from Oracle that I expect to see. However, when I click on any form element that sends data to the server, I get the following stack trace:

      javax.servlet.ServletException
       javax.faces.webapp.FacesServlet.service(FacesServlet.java:125)
       com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:194)
       org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      
      
      root cause
      
      java.lang.NullPointerException
       javax.faces.component.UIComponentBase.getRenderer(UIComponentBase.java:524)
       javax.faces.component.UIComponentBase.getClientId(UIComponentBase.java:136)
       javax.faces.component.UIComponentBase.getClientId(UIComponentBase.java:129)
       javax.faces.component.UIComponentBase.getClientId(UIComponentBase.java:129)
       javax.faces.component.UIComponentBase.getClientId(UIComponentBase.java:129)
       com.sun.rave.web.ui.component.TableRowGroup.getProperties(TableRowGroup.java:1804)
       com.sun.rave.web.ui.component.TableRowGroup.restoreState(TableRowGroup.java:1490)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:511)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:502)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:502)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:502)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:502)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:502)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:502)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:502)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:502)
       javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:502)
       org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreComponentState(JspStateManagerImpl.java:129)
       org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspStateManagerImpl.java:185)
       org.apache.myfaces.application.jsp.JspViewHandlerImpl.restoreView(JspViewHandlerImpl.java:255)
       com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:337)
       org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.java:124)
       org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:66)
       javax.faces.webapp.FacesServlet.service(FacesServlet.java:106)
       com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:194)
       org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      
      


      Any suggestions on how to proceed here? I am a bit new to JBoss and JSF, so I may be missing something fairly obvious to the more seasoned users out there.