2 Replies Latest reply on Jun 27, 2007 3:19 AM by phantom

    SEAM/RichFaces issue

      I am trying to get a <rich:dataTable to work correctly with SEAM and I keep getting the same error in the log. I am using SEAM 1.2.1, richfaces-3.0.1-SNAPSHOT.jar, ajax4jsf-1.1.1-SNAPSHOT.jar and oscache-2.3.2.jar.

      ERROR:
      21:59:38,500 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
      org.ajax4jsf.framework.resource.ResourceNotFoundException: Resource not registered : org.richfaces.renderkit.html.GradientA
      at org.ajax4jsf.framework.resource.ResourceBuilderImpl.getResource(ResourceBuilderImpl.java:376)
      at org.ajax4jsf.framework.resource.ResourceBuilderImpl.getResourceForKey(ResourceBuilderImpl.java:333)
      at org.ajax4jsf.framework.resource.InternetResourceService.serviceResource(InternetResourceService.java:128)
      at org.ajax4jsf.framework.resource.InternetResourceService.serviceResource(InternetResourceService.java:118)
      at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:207)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
      at java.lang.Thread.run(Unknown Source)

      my web.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app version="2.5"
       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/web-app_2_5.xsd">
      
       <!-- Ajax4jsf (must come first!) -->
      
       <filter>
       <display-name>Ajax4jsf Filter</display-name>
       <filter-name>ajax4jsf</filter-name>
       <filter-class>org.ajax4jsf.Filter</filter-class>
       </filter>
      
       <filter-mapping>
       <filter-name>ajax4jsf</filter-name>
       <url-pattern>*.seam</url-pattern>
       </filter-mapping>
      
       <context-param>
       <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
       <param-value>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</param-value>
       </context-param>
      
       <!-- RichFaces -->
       <context-param>
       <param-name>org.ajax4jsf.SKIN</param-name>
       <param-value>blueSky</param-value>
       </context-param>
      
       <filter>
       <display-name>Ajax4jsf Filter</display-name>
       <filter-name>ajax4jsf</filter-name>
       <filter-class>org.ajax4jsf.Filter</filter-class>
       </filter>
      
       <filter-mapping>
       <filter-name>ajax4jsf</filter-name>
       <servlet-name>Faces Servlet</servlet-name>
       <dispatcher>REQUEST</dispatcher>
       <dispatcher>FORWARD</dispatcher>
       <dispatcher>INCLUDE</dispatcher>
       </filter-mapping>
      
       <!-- Seam -->
      
       <listener>
       <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
       </listener>
      
       <servlet>
       <servlet-name>Seam Resource Servlet</servlet-name>
       <servlet-class>org.jboss.seam.servlet.ResourceServlet</servlet-class>
       </servlet>
      
       <servlet-mapping>
       <servlet-name>Seam Resource Servlet</servlet-name>
       <url-pattern>/seam/resource/*</url-pattern>
       </servlet-mapping>
      
       <filter>
       <filter-name>Seam Filter</filter-name>
       <filter-class>org.jboss.seam.web.SeamFilter</filter-class>
       </filter>
      
       <filter-mapping>
       <filter-name>Seam Filter</filter-name>
       <url-pattern>/*</url-pattern>
       </filter-mapping>
      
       <!-- JSF -->
      
       <context-param>
       <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
       <param-value>client</param-value>
       </context-param>
      
       <context-param>
       <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
       <param-value>.xhtml</param-value>
       </context-param>
      
       <context-param>
       <param-name>facelets.DEVELOPMENT</param-name>
       <param-value>true</param-value>
       </context-param>
      
       <servlet>
       <servlet-name>Faces Servlet</servlet-name>
       <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
       </servlet>
      
       <servlet-mapping>
       <servlet-name>Faces Servlet</servlet-name>
       <url-pattern>*.seam</url-pattern>
       </servlet-mapping>
      
       <!-- MyFaces -->
       <listener>
       <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
       </listener>
      
      
       <!-- JSF RI -->
       <!--
       <listener>
       <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
       </listener>
       -->
      
       <session-config>
       <session-timeout>10</session-timeout>
       </session-config>
      
      </web-app>
      


      Page using RichFaces Component
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:s="http://jboss.com/products/seam/taglib"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:rich="http://richfaces.ajax4jsf.org/rich"
       xmlns:c="http://java.sun.com/jstl/core"
       xmlns:h="http://java.sun.com/jsf/html">
      <head/>
      <body>
       <ui:composition>
       <script> helpTopic="quick_search"; </script>
       <h:form id="cubeSearchParams" style="margin: 0; padding: 0;">
       <div style="margin: 0; padding: 0;">
       <div style="margin-top: 0; margin-bottom: 1em; border-bottom: 2px solid black;">
       <h3 style="padding-bottom: 0; margin-bottom: 0;">
       <h:outputText id="basicSearchTitle"
       value="#{msgs.cubeSearchTitle}"/>
       </h3>
       </div>
       <table cellspacing="0" cellpadding="0" border="0" style="width: 540px;">
       <tr>
       <td>
       <h:outputText value="#{msgs.cubeSearchHint}"/>
       </td>
       </tr>
       <tr>
       <td>
       <rich:dataTable cellpadding="0"
       cellspacing="0"
       border="1"
       var="iceCube"
       value="#{icecubesearch.iceCubes}">
       <f:facet name="header">
       <rich:columnGroup>
       <rich:column rowspan="4">
       <h:outputText value="#{msgs.biomoleculeColHeader}" />
       </rich:column>
       <rich:column>
       <h:outputText value="#{msgs.platformColHeader}" />
       </rich:column>
       <rich:column>
       <s:link id="cubeSearch1"
       value="#{msgs.locationsCol1}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="location" value="#{msgs.locationsCol1}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <s:link id="cubeSearch2"
       value="#{msgs.locationsCol2}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="location" value="#{msgs.locationsCol2}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <s:link id="cubeSearch3"
       value="#{msgs.locationsCol3}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="location" value="#{msgs.locationsCol3}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <s:link id="cubeSearch4"
       value="#{msgs.locationsCol4}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="location" value="#{msgs.locationsCol4}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <s:link id="cubeSearch5"
       value="#{msgs.locationsCol5}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="location" value="#{msgs.locationsCol5}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <s:link id="cubeSearch6"
       value="#{msgs.locationsCol6}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="location" value="#{msgs.locationsCol6}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <s:link id="cubeSearch7"
       value="#{msgs.subDiagCol1}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="subdiagnosis" value="#{msgs.subDiagnosisNormalNameFilter}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <s:link id="cubeSearch8"
       value="#{msgs.subDiagCol2}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="subdiagnosis" value="#{msgs.subDiagnosisCancerNameFilter}"/>
       </s:link>
       </rich:column>
       </rich:columnGroup>
       </f:facet>
       <rich:column>
       <s:link id="cubeSearch17"
       value="#{iceCube.analyte}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <s:link id="cubeSearch18"
       value="#{iceCube.platform}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       <f:param name="platform" value="#{iceCube.platform}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <h:outputText id="emptyString1"
       rendered="#{iceCube.locationsCol1 le 0}"
       style="width: 100%; color: white;"
       value="#{iceCube.locationsCol1}"/>
      
       <s:link id="cubeSearch16"
       rendered="#{iceCube.locationsCol1 gt 0}"
       value="#{iceCube.locationsCol1}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       <f:param name="platform" value="#{iceCube.platform}"/>
       <f:param name="location" value="#{msgs.locationsCol1}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <h:outputText id="emptyString2"
       rendered="#{iceCube.locationsCol2 le 0}"
       style="width: 100%; color: white;"
       value="#{iceCube.locationsCol2}"/>
       <s:link id="cubeSearch15"
       rendered="#{iceCube.locationsCol2 gt 0}"
       value="#{iceCube.locationsCol2}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       <f:param name="platform" value="#{iceCube.platform}"/>
       <f:param name="location" value="#{msgs.locationsCol2}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <h:outputText id="emptyString3"
       rendered="#{iceCube.locationsCol3 le 0}"
       style="width: 100%; color: white;"
       value="#{iceCube.locationsCol3}"/>
       <s:link id="cubeSearch14"
       rendered="#{iceCube.locationsCol3 gt 0}"
       value="#{iceCube.locationsCol3}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       <f:param name="platform" value="#{iceCube.platform}"/>
       <f:param name="location" value="#{msgs.locationsCol3}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <h:outputText id="emptyString4"
       rendered="#{iceCube.locationsCol4 le 0}"
       style="width: 100%; color: white;"
       value="#{iceCube.locationsCol4}"/>
       <s:link id="cubeSearch13"
       rendered="#{iceCube.locationsCol4 gt 0}"
       value="#{iceCube.locationsCol4}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       <f:param name="platform" value="#{iceCube.platform}"/>
       <f:param name="location" value="#{msgs.locationsCol4}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <h:outputText id="emptyString5"
       rendered="#{iceCube.locationsCol5 le 0}"
       style="width: 100%; color: white;"
       value="#{iceCube.locationsCol5}"/>
       <s:link id="cubeSearch12"
       rendered="#{iceCube.locationsCol5 gt 0}"
       value="#{iceCube.locationsCol5}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       <f:param name="platform" value="#{iceCube.platform}"/>
       <f:param name="location" value="#{msgs.locationsCol5}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <h:outputText id="emptyString6"
       rendered="#{iceCube.locationsCol6 le 0}"
       style="width: 100%; color: white;"
       value="#{iceCube.locationsCol6}"/>
       <s:link id="cubeSearch11"
       rendered="#{iceCube.locationsCol6 gt 0}"
       value="#{iceCube.locationsCol6}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       <f:param name="platform" value="#{iceCube.platform}"/>
       <f:param name="location" value="#{msgs.locationsCol6}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <h:outputText id="emptyString7"
       rendered="#{iceCube.subDiagCol1 le 0}"
       style="width: 100%; color: white;"
       value="#{iceCube.subDiagCol1}"/>
       <s:link id="cubeSearch10"
       rendered="#{iceCube.subDiagCol1 gt 0}"
       value="#{iceCube.subDiagCol1}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       <f:param name="platform" value="#{iceCube.platform}"/>
       <f:param name="subdiagnosis" value="#{msgs.subDiagnosisNormalNameFilter}"/>
       </s:link>
       </rich:column>
       <rich:column>
       <h:outputText id="emptyString8"
       rendered="#{iceCube.subDiagCol2 le 0}"
       style="width: 100%; color: white;"
       value="#{iceCube.subDiagCol2}"/>
       <s:link id="cubeSearch9"
       rendered="#{iceCube.subDiagCol2 gt 0}"
       value="#{iceCube.subDiagCol2}"
       action="#{icecubesearch.doTraySearch}">
       <f:param name="analyte" value="#{iceCube.analyte}"/>
       <f:param name="platform" value="#{iceCube.platform}"/>
       <f:param name="subdiagnosis" value="#{msgs.subDiagnosisCancerNameFilter}"/>
       </s:link>
       </rich:column>
       </td>
       </tr>
       <tr>
       <td colspan="2" class="formLabel" style="padding-top: 2em; text-align: center;">
       <s:link id="basicLink"
       value="#{msgs.searchTypeSiimple}"
       action="#{search.selectSearchType}"
       style="padding-right: 1em;">
       <f:param name="searchType" value="#{msgs.searchTypeSiimple}"/>
       </s:link>
       <s:link id="advancedLink"
       value="#{msgs.searchTypeAdvanced}"
       action="#{search.selectSearchType}"
       style="padding-right: 1em;">
       <f:param name="searchType" value="#{msgs.searchTypeAdvanced}"/>
       </s:link>
       </td>
       </tr>
       </table>
       </div>
       </h:form>
       </ui:composition>
      </body>
      </html>


      Can anyone tell me what causes this error?

      Thanks
      Jerry