Problema de configuração com rich faces e myfaces

4 respostas
cordjr

Estou tentando usar o richfaces e myfaces num projeto , só que tá levantando um erro quando acesso uma qualquer pagina jsf, acredito que seja alguma configuração no web.xml já dei uma googlada mas não achei nada que pudesse me ajudar. Se alguem puder me ajudar agradeço muito.

o erro é esse aqui:

[color=darkred]SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at java.lang.String.startsWith(String.java:1422)
at java.lang.String.startsWith(String.java:1451)
at org.ajax4jsf.webapp.WebXml.getFacesResourceKey(WebXml.java:189)
at org.ajax4jsf.webapp.WebXml.getFacesResourceKey(WebXml.java:222)
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:139)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:510)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)[/color]

o meu web.xml está assim:

<display-name>JSFAgenda</display-name>

	<!-- Plugging the "Blue Sky" skin into the project -->

	<context-param>
		<param-name>org.richfaces.SKIN</param-name>
		<param-value>blueSky</param-value>
	</context-param>



	<!-- Making the RichFaces skin spread to standard HTML controls -->

	<context-param>
		<param-name>org.richfaces.CONTROL_SKINNING</param-name>
		<param-value>enable</param-value>
	</context-param>



	<!-- Defining and mapping the RichFaces filter -->

	<filter>
		<display-name>RichFaces Filter</display-name>
		<filter-name>richfaces</filter-name>
		<filter-class>org.ajax4jsf.Filter</filter-class>

	</filter>



	<filter-mapping>

		<filter-name>richfaces</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>INCLUDE</dispatcher>

	</filter-mapping>






	<!-- Servlet JSf -->
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<!-- MAPEAMENTO DO SERVLET -->
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>/faces/*</url-pattern>
		<url-pattern>*.jsf</url-pattern>
	</servlet-mapping>







	<context-param>
		<param-name>myfaces_pretty_html</param-name>
		<param-value>true</param-value>
		<!--
			If true, rendered HTML code will be formatted, so that it is "human
			readable". i.e. additional line separators and whitespace will be
			written, that do not influence the HTML code. Default: "true"
		-->


	</context-param>


	<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>
Agradeço se alguem puder me ajudar

--
José Cordeiro de Oliveira junior
Desenvolvedor Java/ .NET
---
SCJP 5.0

4 Respostas

anderson.bonavides

cordjr,

Qual sua versão do richfaces?

cordjr

é richfaces 3.3.0

anderson.bonavides

Para utilizar a versão mais nova do richfaces-3.3.0.GA é necessário atualizar todas as bibliotecas, caso uma biblioteca não esteja atualizada você não terá sucesso ao ver o richfaces funcionar.
Depois disso é só seguir as configurações do faces-config.xml, web.xml e as páginas JSP ou XHTML.

Você pode verificar se as minhas configurações batem com a sua:

web.xml

<!-- #################### CONFIGURAÇÃO DO RICHFACES #################### -->
	<context-param>
		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
		<param-value>server</param-value>
	</context-param>

	<context-param>
		<param-name>org.richfaces.SKIN</param-name>
		<!-- <param-value>blueSky</param-value> -->
		<!-- <param-value>laguna</param-value> -->
		<!-- <param-value>classic</param-value> -->
		<param-value>laguna</param-value>
		<!-- <param-value>wine</param-value>  -->
		<!-- <param-value>deepMarine</param-value>  -->
		<!-- <param-value>emeraldTown</param-value>  -->
		<!-- <param-value>sakura</param-value> -->
		<!-- <param-value>plain</param-value>  -->
		<!-- <param-value>default</param-value>  -->
	</context-param>

	<context-param>
		<param-name>org.richfaces.CONTROL_SKINNING</param-name>
		<param-value>enable</param-value>
	</context-param>

	//ESTE PARÂMETRO É PARA QUEM USA FACELETS.
	<context-param>
		<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
		<param-value>com.sun.facelets.FaceletViewHandler</param-value>
	</context-param>

	<filter>
		<display-name>RichFaces Filter</display-name>
		<filter-name>richfaces</filter-name>
		<filter-class>org.ajax4jsf.Filter</filter-class>
	</filter>


	<filter-mapping>
		<filter-name>richfaces</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>INCLUDE</dispatcher>
	</filter-mapping>

	<listener>
		<listener-class>
			com.sun.faces.config.ConfigureListener
		</listener-class>
	</listener>

	<!-- #################### CONFIGURAÇÃO DO MYFACES #################### -->

	<context-param>
		<param-name>
			org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION
		</param-name>
		<param-value>20</param-value>
	</context-param>
	<context-param>
		<param-name>
			org.apache.myfaces.SERIALIZE_STATE_IN_SESSION
		</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>
			org.apache.myfaces.COMPRESS_STATE_IN_SESSION
		</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
		<param-value>false</param-value>
	</context-param>
	<context-param>
		<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
		<param-value>true</param-value>
	</context-param>

	<context-param>
		<param-name>org.apache.myfaces.SECRET</param-name>
		<param-value>NzY1NDMyMTA=</param-value>
	</context-param>

	<context-param>
		<param-name>org.apache.myfaces.VALIDATE</param-name>
		<param-value>true</param-value>
	</context-param>

	<context-param>
		<param-name>
			org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS
		</param-name>
		<param-value>true</param-value>
	</context-param>

	<context-param>
		<param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name>
		<param-value>
			org.apache.myfaces.renderkit.html.util.DefaultAddResource
		</param-value>
	</context-param>

	<context-param>
		<param-name>
			org.apache.myfaces.RESOURCE_VIRTUAL_PATH
		</param-name>
		<param-value>/faces/myFacesExtensionResource</param-value>
	</context-param>

	<context-param>
		<param-name>
			org.apache.myfaces.CHECK_EXTENSIONS_FILTER
		</param-name>
		<param-value>true</param-value>
	</context-param>

E as chamadas no topo das páginas JSP e XHTML:

Para xhtml:
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"

Para JSP´S:
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

Dúvidas podem ser obtidas na própria documentação que aliás é bem explicativa.

[url]http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html_single/index.html[/url]

Espero ter ajudado.

Boa Sorte!

cordjr

Consegui resolver o problema. estava faltando um jar(standard.jar) e havia um erro de configuração no web.xml, mais precisamente no mapeamento do servlet do JSF que estava dessa forma :

<!-- MAPEAMENTO DO SERVLET -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
quando alterei para :
<!-- MAPEAMENTO DO SERVLET -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
       
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>

        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
Funcionou perfeitamente.

valeu pela força anderson e um abraço a todos!!

José Cordeiro de Oliveira junior
Desenvolvedor Java/ .NET
---
SCJP 5.0

Criado 17 de fevereiro de 2009
Ultima resposta 19 de fev. de 2009
Respostas 4
Participantes 2