JSF 2.0 no Tomcat 6

5 respostas
rafaelbtz

Salve GUJ,

Fiz um site pra testar as novidades do JSF 2, achei MUITO bom, na minha humilde opnião, agora ficou usavel o JSF sozinho sem Facelets (ou agora com facelets implícito) e sem o Seam. Só ta faltando mesmo sair o RichFaces 4 pq o Alpha 1 veio com muito pouca coisa.

Tudo esta funcionando blz no Glassfish V3. Mas eu queria rodar ele no Tomcar 6, então eu copiei pro lib da aplicação os 2 jars do JSF.
O Tomcat sobe e eu consigo acessar a aplicação, porém, quando eu uso uma chamada EL com passagem de parâmetros o seguinte erro:

org.apache.el.parser.ParseException: Encountered " "(" "( "" at line 1, column 36.
Was expecting one of:
    "}" ...
    "." ...
    "[" ...
    ">" ...
    "gt" ...
    "<" ...
    "lt" ...
    ">=" ...
    "ge" ...
    "<=" ...
    "le" ...
    "==" ...
    "eq" ...
    "!=" ...
    "ne" ...
    "&&" ...
    "and" ...
    "||" ...
    "or" ...
    "*" ...
    "+" ...
    "-" ...
    "/" ...
    "div" ...
    "%" ...
    "mod" ...

Tem como resolver isso no Tomcat 6.

Muito Obrigado…

5 Respostas

R

Relamente é um ponto bastante interessante, se não é possível rodar no tomcat, de nada adianta JSF 2. Ficaremos refém no nada pesado jboss.

C

Olá Rafael, rapaz tu já conseguiu colocar um projeto JSF 2.0 para rodar no Tomcat? tentei no Tomcat 7.0 e nada também…já adicionei diversos possíveis .JARs e nada…abrir até um tópico especifico, visto que identifiquei que nem o problema é o não entendimento dos managedbeans anotados, ou seja, sem estarem mapeados no faces-config.xml. Depois dá uma olhada no que eu descrevi:

http://www.guj.com.br/posts/list/213112.java

Se já tiver alguma luz, me diz :slight_smile:

tnaires

Já falei em outro tópico que o Tomcat 6 possui uma implementação antiga da Expression Language. E o JSF 2.0 usa uma EL mais recente, com mais recursos. Então vocês têm que ir no site da EL, baixar os JARs mais recentes e copiá-los para a pasta lib do Tomcat.

Aqui está o que diz o livro Core JavaServer Faces 3rd edition:

CAUTION: Method parameters will not work on Tomcat 6 with just the JSF
JAR files. The expression language (EL) is not a part of JSF but instead
defined in JSR 245 (JavaServer Pages). Method parameters are a feature of
EL 2.2, which is not supported by Tomcat 6. In order to use the EL 2.2 features,
obtain the JARs from http://uel.dev.java.net, add them to the WEB-INF/
lib directory of your web application, and add the following to your web.xml file:
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>

tnaires

É claro que é possível! E se não fosse possível, seria o fim do mundo? Só existe o Tomcat como servlet container? E o Jetty? E se quiser usar um application server, tem o Glassfish que é completo mas é bem mais leve que o JBoss.

C

Atualizei a EL mas ainda não funcionou…

Parei tudo e refiz toda a instalação, baixei novamente o Tomcat 7.0, fui no que estava instalado e apaguei todas os JARs do lib e joguei novamente os JARs presentes no arquivo que baixei. Minha intenção era deixar o tomcat como veio e ir colocando os “novos” JARS aos poucos. Tentei rodar a aplicação com o Tomcat 7.0 limpo e nada…então joguei somente os dois arquivos do MOJARA JSF 2.0 no diretório lib do Tomcat e resultado: funcionou, entendeu tudo…JSF 2.0 rodou, acho que tinha algum JAR inadequado resultado da primeira instalação…

Criado 9 de dezembro de 2009
Ultima resposta 22 de jul. de 2010
Respostas 5
Participantes 4