Aplicação JSF não inicia!

Olá pessoal

Faz 3 dias que eu estou me matando com isso e não acho a solução. Eu configurei um servidor com Tomcat + Postgres. E quando eu faço deploy nos logs me retorno o seguinte erro:

[quote]SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! null
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:213)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:196)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:850)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:724)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NullPointerException
at com.sun.faces.config.processor.ManagedBeanConfigProcessor.process(ManagedBeanConfigProcessor.java:241)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:108)
at com.sun.faces.config.processor.ValidatorConfigProcessor.process(ValidatorConfigProcessor.java:107)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:108)
at com.sun.faces.config.processor.ConverterConfigProcessor.process(ConverterConfigProcessor.java:117)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:108)
at com.sun.faces.config.processor.ComponentConfigProcessor.process(ComponentConfigProcessor.java:108)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:108)
at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:252)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:108)
at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:119)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:108)
at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:132)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:203)
… 25 more
[/quote]

Pesquisei e encontrei que era pra atualizar a versão do commons-collections para a versão 3.2, mas ela já está nessa versão. Outra foi eu ter que remover todos os JSF da Sun para não conflitar com o myfacelets, mas quando eu ranco, a aplicação não encontra as classes e dá ClassNotFoundException.

Detalhe importante, na minha máquina o sistema funciona perfeitamente.

Por favor, me ajudem.

Obrigado.

Se você está tentando fazer deploy em outra máquina, certifique-se que o WAR/EAR gerados estejam com a estrutura correta, contendo todos os JARS necessários para rodar a aplicação

Você acha interessante colocar as libs da aplicação no /lib do Tomcat? Pois as libs estão todas no WEB-INF/lib da aplicação.

1º - verifique se tem mais de uma api repetitiva… isso pode gerar problema de versão
2º - pelo que eu vi, parece um erro de configuração do faces-config ou do web.xml

Olá.

Eu dei uma olhada aqui, não tem nenhuma lib repetida. Acho que o Maven não deixa também.

Vou postar meu faces-config e web.xml, espero que seja algo bem simples, pois estou usando Spring.

[code]<?xml version="1.0"?>

<application>
	<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
	<variable-resolver>org.springframework.web.jsf.SpringBeanVariableResolver</variable-resolver>
	<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>

	<locale-config>
		<default-locale>pt_BR</default-locale>
	</locale-config>
</application>

[/code]

[code]
Sistema de Helpdesk para o Cidade Cancao

contextConfigLocation
/WEB-INF/applicationContext.xml


javax.faces.DEFAULT_SUFFIX
.jspx


org.richfaces.SKIN
classic


org.richfaces.CONTROL_SKINNING
enable


richfaces
org.ajax4jsf.Filter


richfaces
Faces Servlet
REQUEST
FORWARD
INCLUDE

<filter>
	<filter-name>hibernateFilter</filter-name>
	<filter-class>com.cidadecancao.filter.HibernateFilter</filter-class>
</filter>

<filter-mapping>
	<filter-name>hibernateFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
	<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<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>
<welcome-file-list>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

[/code]

Obrigado.

[quote=Pilantra]Olá.

Eu dei uma olhada aqui, não tem nenhuma lib repetida. Acho que o Maven não deixa também.

Vou postar meu faces-config e web.xml, espero que seja algo bem simples, pois estou usando Spring.

[code]<?xml version="1.0"?>

<application>
	<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
	<variable-resolver>org.springframework.web.jsf.SpringBeanVariableResolver</variable-resolver>
	<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>

	<locale-config>
		<default-locale>pt_BR</default-locale>
	</locale-config>
</application>

[/code]

[code]
Sistema de Helpdesk para o Cidade Cancao

contextConfigLocation
/WEB-INF/applicationContext.xml


javax.faces.DEFAULT_SUFFIX
.jspx


org.richfaces.SKIN
classic


org.richfaces.CONTROL_SKINNING
enable


richfaces
org.ajax4jsf.Filter


richfaces
Faces Servlet
REQUEST
FORWARD
INCLUDE

<filter>
	<filter-name>hibernateFilter</filter-name>
	<filter-class>com.cidadecancao.filter.HibernateFilter</filter-class>
</filter>

<filter-mapping>
	<filter-name>hibernateFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
	<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<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>
<welcome-file-list>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

[/code]

Obrigado.[/quote]

Então… eu uso spring com jsf também… e parece que está bem parecido as configurações, exceto por este trecho:

<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>

tente tirar ele do seu web.xml

e onde ele faz a ponte com o spring

<application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver> </application>
Troca por esse trecho acima no seu faces-config.xml

Estava torcendo para que fosse isso mas não deu certo. Fiz as alterações e o mesmo erro persiste :frowning:

Alguma outra idéia? :frowning:

Bom… parece que não está conseguindo inicializar nem as configurações… onde que vc colocou o faces-config.xml?

Eu deixo ele junto com o web.xml, no WEB-INF. Engraçado que local ele roda que é uma beleza.

e o que vc usa pra rodar local? por acaso é algum app server (glassfish, jboss, etc)?

Eu uso o tomcat apenas. A única lib diferente que eu coloquei no /lib do tomcat é o driver do Postgres.

huummm… agora ue fiquei em dúvida com relação ao tomcat… tipo… faz tempo qeu eu não uso ele… já tentou rodar o seu projeto em um glassfish pra ver se roda?.. tenta fazer isso… as vezes… dependendo od que vc usar do spring ele não roda no tomcat

O GlassFish é mais adequado para aplicações JSF? Eu não tenho muita experiência com JSF, faz pouco tempo em relação a outros frameworks.

Eu vou fazer esse teste e posto aqui os resultados. Tomara que de certo.

Valeu.

na verdade esses appservers tem até a api do jsf nativa para se trabalhar… tipo… pelo menos eu acho melhor… esse seu problema eu nunca tive… e quando eu comecei com jsf eu já usava apenas glassfish…

vamos ver… se não for… qualquer coisa agente ve o código certinho porque pode ser api… como vc mesmo falou no começo

Olá pessoal.

Só para finalizar a thread. O sistema rodou no Glassfish mas mesmo assim ainda está meio estranho, dando uns paus estranhos na hora de salvar em algumas telas.

O que vamos fazer é instalar o Red Hat como servidor, ouvi dizer a um tempo que o Java no Debian não rodava muito bem para aplicações Web que usam JSF.

No fim, acho que não tinha nada de errado com o sistema hehe.

Agradeço aos amigos que ajudaram.

Abraços!

Caso esses paus continuem… poste aí pra gente dar uma olhada…