Problemas com TAGLIB, Faces e JBoss (referenciamento)

Pessoal,

Estou seguindo um exemplo do JSF in Action do Maanning…
Ele cria um header da pagina com uma taglib própria:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="jsf-in-action-components" prefix="jia" %>
<f:subview id="header">
	<h:form>
		<h:panelGrid columns="3" cellspacing="0" cellpadding="0"
			styleClass="header" width="100%">
			<jia:navigatorToolbar id="header" layout="horizontal"
				headerClass="header-header" itemClass="header-command"
				selectedItemClass="header-command" iconClass="header-icon"
				immediate="false">
				<f:facet name="header">
					<h:outputText value="ProjectTrack:" />
				</f:facet>				
				<jia:navigatorItem name="inbox" label="Inbox"
					icon="/images/inbox.png" action="inbox" />
				<jia:navigatorItem name="showAll" label="Show All"
					icon="/images/showall.png" action="show_all" />
				<jia:navigatorItem name="createNew" label="Create New"
					icon="/images/new.png" action="create" />
				<jia:navigatorItem name="logout" label="Logout"
					icon="/images/logout.png" action="logout" />				
			</jia:navigatorToolbar>

Muito bem, fui no Eclipse e adicionei o componente que ele usa… no site dele tem a taglib em forma de .jar e se chama jia-custom-components.jar

Pessoal, como sou novato no uso de Faces, taglibs e essas coisas… olha só… Estou rodando o projeto pelo próprio Eclipse (View Server) e o deploy é feito no meu Jboss. Notei que se coloco o jar junto com as libs do Jboss (que não é uma boa prática) e coloco o arquivo .tld dentro da pasta Web-inf, funciona… mas não queria fazer assim porque o arquivo TLD está dentro do JAR (META-INF)…

Então pessoal quando rodo a aplicação sem o TLD no Web-inf, não rola… e dá erro de referencia:

(Vi em alguns casos que o pessoal referencia TAGLIBS no WEB.XML - Não fiz isso (é necessário???) como faço para referenciar se ela está no .JAR e o TLD no META-INF… ?

File "/jsf-in-action-components" not found

Abraços a todos e uma ótima SEXTA-FEIRA QUE PRECISA CHEGAR LOOOOGO hahahahaha.

Mateus

ou você configura o web.xml assim:

<taglib> <taglib-uri>jsf-in-action-components</taglib-uri> <taglib-location>/WEB-INF/jsf-in-action-components.tld</taglib-location> </taglib>

ou, não tenho certeza, você teria que usar a taglib assim:

<%@ taglib uri="/WEB-INF/jsf-in-action-components.tld" prefix="jia" %> 

Pois é mas o TLD está no META-INF do JAR da taglib, então dessa forma acho que não fica organizada você não acha? Uma vez que no JAR já tem o TLD?

Abraços

vc precisa colocar o jar no WEB-INF/lib da sua aplicação.

O JBoss ou tomcat vai procurar as tags nos seguintes locais:
:arrow: WEB-INF/tags e subdiretórios
:arrow: META-INF/tags e subdiretórios, dos JAR que estiverem dentro de WEB-INF/lib

Se a tag for distribuída em um JAR, ela precisa de uma TLD. Se estiver em WEB-INF/tags ou subdiretórios ela não precisa TLD.

Acho que o seu problema é pq vc colocou o JAR nas libs do JBoss e não no WEB-INF/lib da sua app.

:roll:

Pessoal, olhem como está meu eclipse (anexo):

Sinceramente abri o Properties do Projeto, em Libraries cliquei em Add External Jar e boa… Isso não basta?

Pessoal, desculpe minha ignorância nesse sentido.

Abraços a todos e quem sabe algum dia possa ajudá-los em alguma coisa…

Mateus

No seu caso, vc precisa mover aquela lib para a pasta WEB-INF/lib …

a biblioteca deve aparecer em Web App Libraries.

Exemplo na imagem anexada.

Legal Rock!!!

Valeu pela solução! Resolveu o problema. Comunidade Java é isso aí…!

:lol: