2 Replies Latest reply on Feb 9, 2008 10:56 PM by mrauls

    JBoss Portal + richfaces + facelets ajax problem

      Using 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>