Olá gente, consegui fazer o bendito tomcat 6 rodar o jsf 2 sem problemas agora, está tudo indo tranquilamente, mas agora eu gostaria de utilziar o primefaces no tomcat 6, mas para isso, preciso de conseguir instalar servlet 3.0 no tomcat para que este rode. Alguém já realizou este procedimento ou sabe quais são as dependências necessárias para adicionar no tomcat 6 para este funcionar?
Primefaces + Tomcat 6 + Servlet 3.0
24 Respostas
Cara uma dúvida.
Porque você não atualiza para o Tomcat 7?
Algum motivo especial?
a empresa não quer migrar, então estou tentando fazer um aplicativo de amostra na versão que eles utilizam, que é o 6, e para depois de impressiona-los (que vai acontecer pq qq coisa é melhor que scriplet kkkk), instalar o 7. Mas neste momento não posso instalar o 7 pois não tenho nem acesso e nem permissões para utilizar o servidor principal.
André.
Ao que tenho conhecimento, somente a partir da versão 7 do Tomcat é possível dar suporte ao JEE 6, o que inclui o Servlet 3.0
Desconheço que o Tomcat 6 tenha suporte para Servlet 3.0, como deseja.
Complementando…
Documentação do Tomcat 6: http://tomcat.apache.org/tomcat-6.0-doc/index.html
Documentação do Tomcat 7: http://tomcat.apache.org/tomcat-7.0-doc/index.html
Como pode ver, a versão 6 implementa o Servlet 2.5.
Engraçado… Tenho uma aplicação JSF 2 + Primefaces + Hibernate + Spring rodando no tomcat 6 de boa.
E por acaso usa Servlet 3.0…?
Não mas o andre disse:
Achei que o tomcat 6 não rodava o jsf 2, por isso postei.
Você não precisa “instalar” o Servlet 3.0 no Tomcat 6 pra rodar PrimeFaces, ele roda de boa com Java EE 5.
Você só precisa “configurar” na mão a servlet do PrimeFaces na sua app.
é só colocar a lib do PrimeFaces na pasta WEB-INF/lib e colocar no seu web.xml
Resource Servlet org.primefaces.resource.ResourceServlet Resource Servlet /primefaces_resource/*cara, nas suas condições atuais (Tomcat 6) não sei se vai rolar usar as versões mais novas do PrimeFaces (3, 3.1, 3.2)
essa Servlet que citei é do PrimeFaces 2.2, e essa versão rola com seu container.
agora sobre o PrimeFaces 3, a documentação oficial não diz nada sobre configurar Servlet na mão, logo, entende-se que é somente pra Servlet 3.
Não dava pra instalar um tomcat 7 provisório na tua máquina mesmo ou em outra qualquer???
O pessoal aqui da empresa é resistente quanto a isso. Existe já um servidor maios, que é onde está a nossa aplicação que já tem tudo configurado com o tomcat 6, são 12 instancias + o balances e + umas frescuras que estão lá. Ele vão mudar somente se tiver certeza de que vai valer a pena as alterações, por isso estou tentando rodar em tomcat 6, porque assim enviarei para o servidor principal, ajustarei lá o que tem que ajustar e então colocarei a aplicação para funcionar, dependendo do resultado, com certeza eles irão aderir.
André,
usa o PrimeFaces 2 mesmo, tem muita coisa, talvez você nem precise das novidades do 3.
estou tentando com o 2.1 agora, adicionei o mapeamento que foi passado mas ainda sem sucesso. Esta coisa… kkkkkkkk
ficou assim o 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"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</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>*.jsf</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resource/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<!-- exception-type>java.lang.Exception</exception-type -->
<location>/500.jsp</location>
</error-page>
<servlet>
<servlet-name>listing</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>
e a página que estou tentando rodaz o exemplo é esta:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<title>Facelet Title</title>
<link rel="stylesheet" href="/direc/midia/css/projetos.css" media="all"/>
<style type="text/css">
.col1{}
.col2{}
.col3{width: 300px; background-color: #000; color: #fff;}
.col4{width: 800px;}
</style>
</h:head>
<h:body>
<p:panel header="F.C. Barcelona" footer="Visca el Barca!">
<h:outputText value="FC Barcelona is one of only three clubs never to have been relegated from La Liga and is the most successful club in Spanish football along with Real Madrid,
having won twenty La Liga titles, a record twenty-five Spanish Cups, eight Spanish Super Cups, four Eva Duarte Cups and two League Cups.
They are also one of the most successful clubs in European football having won fourteen official major trophies in total,
including ten UEFA competitions. They have won three UEFA Champions League titles, a record four UEFA Cup Winners' Cups,
a record three InterCities Fairs Cups (the forerunner to the UEFA Europa League), three UEFA Super Cups and one FIFA Club World Cup.
The club is also the only European side to have played continental football in every season since its inception in 1955." />
</p:panel>
<br/><br/>
<h:form>
<h:dataTable value="#{order.orderList}" var="o" styleClass="tableClass" columnClasses="col1, col2, col3, col4">
<h:column>
<f:facet name="header">
<h:outputText value="Codigo" />
</f:facet>
#{o.orderNo}
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Produto" />
</f:facet>
#{o.productName}
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Preco" />
</f:facet>
#{o.price}
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Qtde" />
</f:facet>
#{o.qty}
</h:column>
</h:dataTable>
</h:form>
</h:body>
</html>
tudo está funcionando, apenas o componente do primefaces é que está falhando e dando esta mensagem: Warning: This page calls for XML namespace http://primefaces.prime.com.tr/ui declared with prefix p but no taglibrary exists for that namespace.
cara, tem certeza que o Jar do PrimeFaces está na pasta /WEB-INF/lib do seu .war né?
sim, está tudo certo, mas acabei de conseguir fazer funcionar, que coisinha chata, era um pequeno detalhe, as libs do JSTL estavam na versão antiga, eu cheguei a atualizar, mas tive que restaurar o projeto, por isso tinha perdido as atualizações das libs já realizadas.
Vlw a ajuda e o saco pra aguentar o problema cmg galera
Abraços
mas isso com PrimeFaces 2 certo ?
desculpa a demora na resposta, sim, com o primefaces 2 e com o mapeamento dor resources no web.xml
Tenta mudar para este http://primefaces.org/ui, veja se funciona!
Eita kkkkk, esse tópico já morreu faz um tempinho, consegui convencer o pessoal aqui a migrar para tomcat7 e acabou a dor de cabeça, até meio que me especializei no tomcat agora, e tomcat 6 não roda de forma alguma servlet 3.0, somente migrando mesmo, a arquitetura é bem diferente, mas consegui rodar primefaces com tomcat6 utilizando a versão 2.2.x do primefaces, que se pode chamar o resource interno dele.
Rapaz, me desculpe reviver o tópico, nem vi que tinha a segunda página…malz…
mas é que eu agora que estou com esse problema, o servidor aqui é tomcat6 e não querem migrar pois existem aplicaçõe que já funcionam nele rodando e não querem correr o risco, um colega criou o projeto aqui com jsf2+primefaces 3.0 + tamcat7, funfa blz, mas preciso fazer o downgrade dele para tomcat6, já coloquei a lib do primefaces 2.2, mas to tendo o erro: “The server does not support version 3.0 of the J2EE Web module specification.”, sei que é configuração mas não to sabendo onde!..
Vlw
Abs.
Se houverem funções que utilizam servlet 3.0, não vai dar para fazer downgrade, como eu disse, a arquitetura é bem diferente do 2.5, que é o do tomcat 6, pro 3.0 que é do tomcat7
É pela forma que parece ele usa o servlet 3.0, vou ter que acabr refazendo a aplicação… vou montar um prjeto com primefaces + jsf+ tomcat6 e ir migradno para lá para ver o que rola…
Vlw.
Desculpa meter o bedelho, mas uma empresa que trata com tecnologia ser resistente a mudanças chega a ser paradoxal.
