Vamos lá!
O primeiro passo é efetuar o download dos jars de 'impl' e 'api' do Mojarra 2.2
Para isso, use as urls abaixo :
- http://mvnrepository.com/artifact/com.sun.faces/jsf-impl
- http://mvnrepository.com/artifact/com.sun.faces/jsf-api
No momento em que escrevo esse post, as últimas versões são:
Coloque o jar de 'impl' na seguinte pasta:
<jboss_home>/modules/com/sun/jsf-impl/main
Edite o arquivo 'module.xml' nesse diretório e altere o atributo 'resource-root-path' para o nome do jar de 'impl' que você copiou. No nosso caso, 'jsf-impl-2.2.12.jar'.
A versão final do XML ficou assim:
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="com.sun.jsf-impl"> <properties> <property name="jboss.api" value="private"/> </properties> <dependencies> <module name="javax.faces.api"/> <module name="javaee.api"/> <module name="javax.servlet.jstl.api"/> <module name="org.apache.xerces" services="import"/> <module name="org.apache.xalan" services="import"/> </dependencies> <resources> <resource-root path="jsf-impl-2.2.12.jar"/> <!-- Insert resources here --> </resources> </module>
Agora coloque o jar de 'api' na seguinte pasta:
<jboss_home>/modules/javax/faces/api/main
Edite o arquivo 'module.xml' nesse diretório e altere o atributo 'resource-root-path'para o nome do jar de 'api' que você copiou. No nosso caso, 'jsf-api-2.2.12.jar'.
Ainda no arquivo 'module.xml', adicione a linha abaixo na seção 'dependencies':
<module name="com.sun.jsf-impl"/>
A versão final do XML ficou assim:
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="javax.faces.api"> <dependencies> <module name="javax.el.api" export="true"/> <module name="javax.servlet.api" export="true"/> <module name="javax.servlet.jsp.api" export="true"/> <module name="javax.servlet.jstl.api" export="true"/> <module name="javax.validation.api" export="true"/> <module name="com.sun.jsf-impl"/> </dependencies> <resources> <resource-root path="jsf-api-2.2.12.jar"/> <!-- Insert resources here --> </resources> </module>
Pronto, seu JBoss está rodando JSF 2.2.
Havia feito um projeto no GlassFish e esta portando o mesmo para Jboss e seu tutorial foi muito útil. Para complementar tive que adicionar a biblioteca da API no próprio projeto pois sem ela o método FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true) não estava sendo reconhecido.
ResponderExcluirAmigo, muito bom o seu artigo. Só fiquei com uma dúvida: se tenho várias aplicações no mesmo servidor rodando JSF 2.1 e quero atualizar apenas uma aplicação para JSF 2.2, essa solução é viável?
ResponderExcluir