JSF + Sun Java Studio Creator + JBoss
nmcminn Jun 23, 2006 12:57 PMI 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.