SEAM/RichFaces issue
jerryeads52 Jun 20, 2007 10:37 PMI 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