Mojarra jsf 2.0.1 e spring 2.5

Olá!

Estou começando em Java e utilizo JSF + Richfaces + Hibernate 3 + Spring 2.5
Estamos migrando de Richfaces para PrimeFaces, entretanto, já foi lançado o primeFaces 2.0 que requer o JSF 2.0
Até aí, OK. baixei o jsf-api.jar e jsf-impl.jar e coloquei no meu BuildPath.
Alterei meu faces-config para 2.0 e tirei o <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> pois não é mais necessário com JSF2
No web.xml faço uma referência ao bid-data.xml onde coloco toda configuração do Spring 2.5
Tudo funcionando normalmente.
Porém, quando criei minha página de login, ao apertar o botão do PrimeFaces(<p:commandButton />) recebo um erro dizendo que o viewId é nulo.

Depois de pesquisar MUITO ( 2 dias) desconfio que o Spring 2.5 não seja compatível com o JSF 2.0[size=18] [/size]…será possível?

Terei que migrar do Spring 2.5 para 3? Nesse caso, como o Spring 3 ainda é uma versão RC, eu não arriscaria…

Aqui está meu faces-config:

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

<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>

<locale-config>
	<default-locale>pt_BR</default-locale>
	<supported-locale>en</supported-locale>
	<supported-locale>es</supported-locale>
</locale-config>

<message-bundle>messages</message-bundle>
<navigation-rule>
	<from-view-id>/tools/formLogin.xhtml</from-view-id>
	<navigation-case>
		<from-outcome>success</from-outcome>
		<to-view-id>/tools/index.xhtml</to-view-id>
		<redirect />
	</navigation-case>
</navigation-rule>

<navigation-rule>
	<from-view-id>/tools/formForgotPassword.xhtml</from-view-id>
	<navigation-case>
		<from-outcome>success</from-outcome>
		<to-view-id>/tools/forgotPasswordSuccess.xhtml</to-view-id>
		<redirect />
	</navigation-case>
</navigation-rule>

[/code]

E aqui está um pedacinho do bid-data com as configs do Spring 2.5…

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:webflow="http://www.springframework.org/schema/webflow-config" xmlns:faces="http://www.springframework.org/schema/faces" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.0.xsd http://www.springframework.org/schema/faces http://www.springframework.org/schema/faces/spring-faces-2.0.xsd">

E aqui está o erro:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Erro de argumento: O parâmetro viewId é nulo
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:323)
	br.com.webtraffic.big.filter.ExpireFilter.doFilter(ExpireFilter.java:27)
	org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	br.com.webtraffic.big.controller.authorization.AuthorizationViewRedirectionFilter.doFilter(AuthorizationViewRedirectionFilter.java:24)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

root cause

java.lang.NullPointerException: Erro de argumento: O parâmetro viewId é nulo
	com.sun.faces.util.Util.notNull(Util.java:221)
	com.sun.faces.application.view.MultiViewHandler.getActionURL(MultiViewHandler.java:270)
	org.springframework.faces.webflow.FlowViewHandler.getActionURL(FlowViewHandler.java:50)
	com.sun.faces.renderkit.html_basic.FormRenderer.getActionStr(FormRenderer.java:234)
	com.sun.faces.renderkit.html_basic.FormRenderer.encodeBegin(FormRenderer.java:137)
	javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:823)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1608)
	javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
	com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(JspViewHandlingStrategy.java:415)
	com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:204)
	com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
	org.springframework.faces.webflow.FlowViewHandler.renderView(FlowViewHandler.java:90)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
	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:311)
	br.com.webtraffic.big.filter.ExpireFilter.doFilter(ExpireFilter.java:27)
	org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	br.com.webtraffic.big.controller.authorization.AuthorizationViewRedirectionFilter.doFilter(AuthorizationViewRedirectionFilter.java:24)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

Por favor, se alguém souber de alguma incompatibilidade ou também lida com primeFaces, divida suas experincias…

Obrigada!

Oi !

Eu mesma achei a resposta…hehehehehe
realmente o Spring 2.5 não suporta o JSF 2 e a versão 3 do Spring ainda é RC, então voltei para o PrimeFaces 1 com JSF 1…

Obrigada pela atenção!
T+!

Reabro este tópico pois estou com o mesmo problema so que com as versões mais novas.

Estou utilizando jsf 2, Spring 3.0.5 e primefaces 2.2.1, e está dando o mesmo erro.

alguém tem uma sujestão que não seja trocar a versão?

Vocês estão configurando o Spring pra ele gerencia o jsf?

spring gerenciar o jsf? tem como?
bom nao to usando rs

[quote=andreharry]spring gerenciar o jsf? tem como?
bom nao to usando rs[/quote]

pq com spring 2.5 e jsf 1.2 tem como, eu andei dando uma estudando, agora com jsf 2 eu não sei, eu configurei 1 projeto usando spring 3 com controle de transação mais primefaces 2.x e foi tranquilo…mais tarde posto as conf.

web.xml



<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
	<display-name>Clinica</display-name>

	<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>

	<context-param>
		<param-name>primefaces.skin</param-name>
		<param-value>none</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>
		<url-pattern>/faces/*</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<filter>
		<filter-name>openEntityManager</filter-name>
		<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>openEntityManager</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

faces-config

<application>
		<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>

xml do spring

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jms="http://www.springframework.org/schema/jms"
	xmlns:sec="http://www.springframework.org/schema/security" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:util="http://www.springframework.org/schema/util" xmlns:faces="http://www.springframework.org/schema/faces"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
		http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd
		http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">

	<!-- Configuração para Usar JPA -->

	<bean id="entityManagerFactory"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="persistenceUnitName" value="springjpa" />
	</bean>

	<tx:annotation-driven transaction-manager="transacaoJPA"  proxy-target-class="true" />

	<bean
		class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor">
	</bean>

	<bean id="transacaoJPA" class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory" ref="entityManagerFactory" />
	</bean>

	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost/spring" />
		<property name="username" value="root" />
		<property name="password" value="" />
	</bean>

	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<context:annotation-config />

	<context:component-scan base-package="br.com.clinica"/>



	<bean id="pessoaManager" class="br.com.clinica.manager.PessoaManager">
		<property name="pessoaDao" ref="pessoaDao" />
	</bean>
	
	
	<bean id="pessoaDao" class="br.com.clinica.dao.PessoaDAO"/>
	
	

</beans>

esse projeto que eu criei foi pra estudo do spring, mais funciono normal o DI e o controle transacional