Problema ao importar taglibs do richfaces

11 respostas
kelvis

PessoALL

Tô tentando importar as tagLibs do richFaces numa jsp do meu projeto no eclipse, mas ele num tá reconhecendo de jeito nenhum… Não funfa!

<%@ taglib uri=“http://richfaces.org/a4j” prefix=“a4j” %>
<%@ taglib uri=“http://richfaces.org/rich” prefix=“rich” %>

já tentei várias versões do rich, mas ele não encontra… Já olhei no BuilPath no eclipse, apontei o caminho certinho e continua dando pau!

as taglibs do jsf ele encontra tranquilamente

<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>

O que pode ser isso? Caso possam me ajudar?

11 Respostas

limkavitch

Você está tentando usar o Richfaces 4.x Alpha? Segundo o pessoal do Richfaces a versão 4 não é compatível com JSP. Tive o mesmo problema e resolvi usando a versão 3.3.3

Segue aqui o link da resposta dos caras:

https://community.jboss.org/thread/147988

aix

ahamm, não entendo porque utilizam JSP com JSF2 ainda.

JSP Deprecation
JSF 2 specification deprecates JSP as a view definition language. And all the new components and most of the features do not works for JSP VDL in JSF 2 itself.
So RichFaces 4 decided to drop that support starting from the first 4.0.0.Final version. So you have to use JSF 2 Facelets VDL.

kelvis

Tópico de 2010 Amigos… =D

aix

hehehhe, verdade, não me liguei. mas fica ai a dica :wink:

kelvis

Bacana… Nos trabalhos de hoje utilizo páginas xhtml com esse cabeçalho aqui:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core"
	  xmlns:s="http://jboss.com/products/seam/taglib" 
	  xmlns:a4j="http://richfaces.org/a4j"
	  xmlns:rich="http://richfaces.org/rich"
	  xmlns:c="http://java.sun.com/jsp/jstl/core">
Ismael_Jr

Fala pessoal blz?

Sei que o post eh antigo mas tenho um problema e ele se encaixa aqui

Estou utilizando Maven, JSF2 e Richfaces 4.2.2

Meu pom.xml esta dessa maneira para os jars do JSF e RichFaces

net.sourceforge.cssparser cssparser 0.9.5
<dependency>
		<groupId>com.google.guava</groupId>
		<artifactId>guava</artifactId>
		<version>12.0-rc1</version>
	</dependency>

	<dependency>
		<groupId>com.sun.faces</groupId>
		<artifactId>jsf-api</artifactId>
		<version>2.1.10</version>
	</dependency>

	<dependency>
		<groupId>com.sun.faces</groupId>
		<artifactId>jsf-impl</artifactId>
		<version>2.1.10</version>
	</dependency>

	<dependency>
		<groupId>javax.validation</groupId>
		<artifactId>validation-api</artifactId>
		<version>1.0.0.GA</version>
	</dependency>

	<dependency>
		<groupId>org.richfaces.ui</groupId>
		<artifactId>richfaces-components-ui</artifactId>
		<version>4.2.2.Final</version>
	</dependency>

	<dependency>
		<groupId>org.richfaces.core</groupId>
		<artifactId>richfaces-core-api</artifactId>
		<version>4.2.2.Final</version>
	</dependency>

Meu Web.xml

<?xml version="1.0" encoding="UTF-8"?>


webapprf4
webapprf4

templete/principal.jsf


javax.faces.STATE_SAVING_METHOD
server


javax.faces.DEFAULT_SUFFIX
.xhtml


javax.faces.PROJECT_STAGE
Development


javax.faces.FACELETS_REFRESH_PERIOD
1


javax.faces.FACELETS_SKIP_COMMENTS
true


javax.faces.SEPARATOR_CHAR
-


org.richfaces.skin
DEFAULT


facelets.BUILD_BEFORE_RESTORE
true


facelets.RECREATE_VALUE_EXPRESSION_ON_BUILD_BEFORE_RESTORE
true


FacesServlet
javax.faces.webapp.FacesServlet
0



FacesServlet
.faces


FacesServlet
.jsf


FacesServlet
*.xhtml


60


javax.faces.application.ViewExpiredException
/expired.xhtml


BASIC

minha XHTML

<?xml version="1.0" encoding="ISO-8859-1" ?>
<style>
.pic {
    margin-bottom: -4px;
    margin-right: 2px;
}
.search .rich-menu-item-hover{
    background-color: transparent;
    border-color: transparent;
}
</style>

<h:form>
    <rich:toolBar>

        <rich:dropDownMenu>
            <f:facet name="label"> 
                <h:panelGroup>
                    <h:graphicImage value="/images/icons/copy.gif" styleClass="pic"/>
                    <h:outputText value="File"/>
                </h:panelGroup>
            </f:facet>
            <rich:menuItem submitMode="ajax" value="New"
                action="#{ddmenu.doNew}" icon="/images/icons/create_doc.gif">
            </rich:menuItem>
            <rich:menuItem submitMode="ajax" value="Open"
                action="#{ddmenu.doOpen}" icon="/images/icons/open.gif" />
            <rich:menuGroup value="Save As...">
                <rich:menuItem submitMode="ajax" value="Save" 
                    action="#{ddmenu.doSave}" icon="/images/icons/save.gif" />
                <rich:menuItem submitMode="ajax" value="Save All"
                    action="#{ddmenu.doSaveAll}">
                    <f:facet name="icon">
                        <h:graphicImage value="/images/icons/save_all.gif" />
                    </f:facet>
                </rich:menuItem>
            </rich:menuGroup>
            <rich:menuItem submitMode="ajax" value="Close"
                action="#{ddmenu.doClose}" />
            <rich:menuSeparator id="menuSeparator11" />
            <rich:menuItem submitMode="ajax" value="Exit"
                action="#{ddmenu.doExit}" />

        </rich:dropDownMenu>

        <rich:dropDownMenu>

            <f:facet name="label">
                <h:panelGrid cellpadding="0" cellspacing="0" columns="2"
                    style="vertical-align:middle">
                    <h:outputText value="Links" />
                </h:panelGrid>
            </f:facet>

            <rich:menuItem submitMode="none"
                onclick="document.location.href='http://labs.jboss.com/jbossrichfaces/'">
                <h:outputLink value="http://labs.jboss.com/jbossrichfaces/">
                    <h:outputText value="RichFaces Home Page"></h:outputText>
                </h:outputLink>
            </rich:menuItem>

            <rich:menuItem submitMode="none"
                onclick="document.location.href='http://jboss.com/index.html?module=bb&amp;op=viewforum&amp;f=261'">
                <h:outputLink
                    value="http://jboss.com/index.html?module=bb&amp;op=viewforum&amp;f=261">
                    <h:outputText value="RichFaces Forum"></h:outputText>
                </h:outputLink>
            </rich:menuItem>

        </rich:dropDownMenu>
        <rich:toolBarGroup location="right">
            <rich:dropDownMenu value="Search" direction="bottom-left" jointPoint="br" styleClass="search">
                <rich:menuItem submitMode="none">
                    <h:inputText value="" id="searchinput"/>
                    <button type="button">Search</button>
                </rich:menuItem>
                <rich:menuItem value="Enter your search criteria here" disabled="true"></rich:menuItem>
            </rich:dropDownMenu>
        </rich:toolBarGroup>
    </rich:toolBar>
</h:form>
<rich:spacer width="1" height="5"/>
<br />
<a4j:outputPanel ajaxRendered="true">
    <h:outputText value="Current Selection: "></h:outputText>
    <h:outputText style="font-weight:bold" value="#{ddmenu.current}"></h:outputText>
</a4j:outputPanel>
<br />
<rich:spacer width="1" height="25" />

</ui:composition>

e o log de erro

javax.servlet.ServletException: /templete/menu.xhtml @19,23 rich:toolBar Tag Library supports namespace: http://richfaces.org/rich, but no tag was defined for name: toolBar
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
root cause

javax.faces.view.facelets.TagException: /templete/menu.xhtml @19,23 <a>rich:toolBar</a> Tag Library supports namespace: <a href="http://richfaces.org/rich">http://richfaces.org/rich</a>, but no tag was defined for name: toolBar

com.sun.faces.facelets.compiler.CompilationManager.pushTag(CompilationManager.java:304)

com.sun.faces.facelets.compiler.SAXCompiler$CompilationHandler.startElement(SAXCompiler.java:252)

com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)

com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:767)

com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)

com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)

com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)

com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)

com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)

com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)

com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)

com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)

com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)

com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)

javax.xml.parsers.SAXParser.parse(SAXParser.java:395)

javax.xml.parsers.SAXParser.parse(SAXParser.java:198)

com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:420)

com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:396)

com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:124)

com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:305)

com.sun.faces.facelets.impl.DefaultFaceletFactory.access$100(DefaultFaceletFactory.java:93)

com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:160)

com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:158)

com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:83)

com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:78)

com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:99)

java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

java.util.concurrent.FutureTask.run(FutureTask.java:138)

com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:114)

com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:121)

com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:62)

com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:256)

com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:366)

com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:346)

com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)

com.sun.faces.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:147)

javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)

com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)

javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)

com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86)

com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:308)

com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:367)

com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:346)

com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)

com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:155)

com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)

com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86)

com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:152)

com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:839)

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)

com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
kelvis

A extensão de suas páginas são .XHTML mesmo? Já se certificou que as Libs do RichFaces estão no classpath do seu projeto…??

Ismael_Jr

Então a extensão é sim .XHTML, estou utilizando maven e mesmo assim preciso add os no meu classpath?

kelvis

Agora que lí direitinho o teu stackTrace rsrsrs… seu problema não está na importação das tagLibs…

Seguinte, a tag que ele está reclamando está escrita da forma chamada “camel case”, observe que a letra “B” está maiuscula e ele não reconhece isso na verão 4: rich:toolBar

troque por rich:toolbar e diz ai se funfou ou não…

A resposta está aqui neste link da Jboss community: https://community.jboss.org/message/595459?_sscc=t

;D

Ismael_Jr

Então o erro mudou

javax.servlet.ServletException: /templete/menu.xhtml @81,49 rich:toolbargroup Tag Library supports namespace: http://richfaces.org/rich, but no tag was defined for name: toolbargroup
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)

Porém tbm eh o seguinte quando dou o Ctrl+Space o eclipse nao reconhece nd.

Desde já obrigado pela atenção.

kelvis

No caso dessa tag ai, a mesma deve ser escrita em camel case: rich:toolbarGroup como no exemplo mostrado no link que passei do rich live demo… Quanto ao auto complete,a resposta está na última mensagem deste post aqui, mas leia todo o tópico primeiro para entender ok: http://www.guj.com.br/java/116259-richfaces---xhtml--ctrl-space

Criado 9 de junho de 2010
Ultima resposta 31 de out. de 2012
Respostas 11
Participantes 4