JBoss Portal + richfaces + facelets ajax problem
mrauls Feb 9, 2008 10:47 PMUsing the 3.2.0 richfaces snapshot + the 3.2.0 portlet bridge I have gotten some RichFaces tags successfully rendering on JBoss Portal version 2.6.3. I've read a lot of other posts and I understand that these items working together is pretty new.
My problem:
It seems like richfaces tags that just render things, like rich:panel or rich:calendar (client mode) seem to work OK. But with both the rich:dataTable and rich:suggestionbox, they render OK when the page loads, but when it comes time for the component to talk back to the server using AJAX (next page, and make a suggestion actions, respectively) I get identical types of stack traces that I do not understand, and I am wondering if anyone has run across anything remotely like this before. Thank you for any ideas you might have.
org.apache.jasper.JasperException: Unable to load tag handler class "null" for tag "ui:composition" org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:265) org.apache.jasper.compiler.JspDocumentParser.parse(JspDocumentParser.java:219) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:200) org.apache.jasper.compiler.ParserController.parse(ParserController.java:103) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167) org.apache.jasper.compiler.Compiler.compile(Compiler.java:306) org.apache.jasper.compiler.Compiler.compile(Compiler.java:286) org.apache.jasper.compiler.Compiler.compile(Compiler.java:273) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:316) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) root cause java.lang.NullPointerException sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) java.lang.ClassLoader.loadClass(Unknown Source) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1273) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) org.apache.jasper.compiler.JspDocumentParser.parseCustomAction(JspDocumentParser.java:1167) org.apache.jasper.compiler.JspDocumentParser.startElement(JspDocumentParser.java:402) org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) org.apache.xerces.parsers.XMLParser.parse(Unknown Source) org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) javax.xml.parsers.SAXParser.parse(Unknown Source) org.apache.jasper.compiler.JspDocumentParser.parse(JspDocumentParser.java:179) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:200) org.apache.jasper.compiler.ParserController.parse(ParserController.java:103) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167) org.apache.jasper.compiler.Compiler.compile(Compiler.java:306) org.apache.jasper.compiler.Compiler.compile(Compiler.java:286) org.apache.jasper.compiler.Compiler.compile(Compiler.java:273) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:316) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
Here is the content of view.jspx:
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" version="2.0"> <a4j:portlet> <ui:composition> <f:loadBundle basename="Language" var="msg" /> <h:form> <rich:panel header="Enter some info"> <table> <tr> <td><font class="portlet-font" style="font-size: x-small;"> <h:outputText value="#{msg['view.name']}" /> </font></td> <td><h:inputText id="name" required="true" styleClass="form-text" value="#{user.name}" /></td> </tr> <tr> <td><font class="portlet-font" style="font-size: x-small;"> <h:outputText value="#{msg['view.date']}" /> </font></td> <td><rich:calendar id="date" required="true" styleClass="form-text" value="#{user.date}" mode="client" datePattern="MM/dd/yyyy" popup="true" /></td> </tr> <tr> <td><font class="portlet-font" style="font-size: x-small;"> <h:outputText value="#{msg['view.medicalSpecialty']}" /> </font></td> <td><h:inputText id="medicalSpecialty" value="#{user.medicalSpecialty}" /> <rich:suggestionbox for="medicalSpecialty" id="medicalSpecialtySuggestion" suggestionAction="#{user.suggestMedicalSpecialty}" var="suggest" height="100" width="175"> <h:column> <h:outputText value="#{suggest.label}" /> </h:column> </rich:suggestionbox></td> </tr> <tr> <td colspan="2"><h:commandButton action="submit" styleClass="portlet-form-button" value="Submit" /></td> </tr> </table> <rich:datascroller align="left" for="carList" maxPages="20" /> <rich:spacer height="30" /> <rich:dataTable width="483" id="carList" rows="10" columnClasses="col" value="#{user.sampleData}" var="row"> <f:facet name="header"> <rich:columnGroup> <h:column> <h:outputText styleClass="headerText" value="Col A" /> </h:column> <h:column> <h:outputText styleClass="headerText" value="Col B" /> </h:column> <h:column> <h:outputText styleClass="headerText" value="Col C" /> </h:column> </rich:columnGroup> </f:facet> <h:column> <h:outputText value="#{row.colA}" /> </h:column> <h:column> <h:outputText value="#{row.colB}" /> </h:column> <h:column> <h:outputText value="#{row.colC}" /> </h:column> </rich:dataTable> </rich:panel> </h:form> </ui:composition> </a4j:portlet> </jsp:root>