MyFaces + RichFaces!

8 respostas
J

Dae galera.. comecei ontem os meus estudos com jsf, dae ví que o Myfaces é uma implementação do JSf e o RichFaces uma biblioteca de componentes.., eu estou tentando integrar os dois mas quando coloco os jars do richfaces e defino ele no web.xml, simplesmente ele o servidor deixa de encontrar as paginas, dando eerro de pagina não encontrada...

Estou utilizando o eclipse e baixei o JBoosTools para me ajudar com o Richfaces.. dae criei um projeto utilizando o Myface...

Segue o web.xml
<?xml version="1.0"?>
<!--
	* Copyright 2004 The Apache Software Foundation.
	*
	* Licensed under the Apache License, Version 2.0 (the "License");
	* you may not use this file except in compliance with the License.
	* You may obtain a copy of the License at
	*
	*      http://www.apache.org/licenses/LICENSE-2.0
	*
	* Unless required by applicable law or agreed to in writing, software
	* distributed under the License is distributed on an "AS IS" BASIS,
	* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
	* See the License for the specific language governing permissions and
	* limitations under the License.
-->
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>JSFCRUD</display-name>
	<context-param>
		<description>
			State saving method: "client" or "server" (= default) See
			JSF Specification 2.5.2
		</description>
		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
		<param-value>server</param-value>
	</context-param>
	<context-param>
		<description>
			This parameter tells MyFaces if javascript code should be
			allowed in the rendered HTML output. If javascript is
			allowed, command_link anchors will have javascript code that
			submits the corresponding form. If javascript is not
			allowed, the state saving info and nested parameters will be
			added as url parameters. Default: "true"
		</description>
		<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<description>
			This parameter tells MyFaces if javascript code should be
			allowed in the rendered HTML output. If javascript is
			allowed, command_link anchors will have javascript code that
			submits the corresponding form. If javascript is not
			allowed, the state saving info and nested parameters will be
			added as url parameters. Default: "false"

			Setting this param to true should be combined with
			STATE_SAVING_METHOD "server" for best results.

			This is an EXPERIMENTAL feature. You also have to enable the
			detector filter/filter mapping below to get JavaScript
			detection working.
		</description>
		<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
		<param-value>false</param-value>
	</context-param>
	<context-param>
		<description>
			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"
		</description>
		<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<description>
			If true, a javascript function will be rendered that is able
			to restore the former vertical scroll on every request.
			Convenient feature if you have pages with long lists and you
			do not want the browser page to always jump to the top if
			you trigger a link or button action that stays on the same
			page. Default: "false"
		</description>
		<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
		<param-value>true</param-value>
	</context-param>
	<!-- Extensions Filter -->
	<filter>
		<filter-name>MyFacesExtensionsFilter</filter-name>
		<filter-class>
			org.apache.myfaces.webapp.filter.ExtensionsFilter
		</filter-class>
		<init-param>
			<description>
				Set the size limit for uploaded files. Format: 10 - 10
				bytes 10k - 10 KB 10m - 10 MB 1g - 1 GB
			</description>
			<param-name>maxFileSize</param-name>
			<param-value>20m</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>MyFacesExtensionsFilter</filter-name>
		<!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry -->
		<servlet-name>Faces Servlet</servlet-name>
	</filter-mapping>
	<!-- extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.)  -->
	<filter-mapping>
		<filter-name>MyFacesExtensionsFilter</filter-name>
		<url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>MyFacesExtensionsFilter</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>
	<!-- Listener, that does all the startup work (configuration, init). -->
	<listener>
		<listener-class>
			org.apache.myfaces.webapp.StartupServletContextListener
		</listener-class>
	</listener>
	<!-- Faces Servlet -->
	<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>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>/faces/*</url-pattern>
	</servlet-mapping>
	<login-config>
		<auth-method>BASIC</auth-method>
	</login-config>


<context-param>
        <param-name>org.richfaces.SKIN</param-name>
        <param-value>blueSky</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>
</web-app>
As bibliotecas:
commons-beanutils.jar
commons-codec.jar
commons-collections.jar
commons-digester.jar
commons-el.jar
commons-fileupload.jar
commons-lang.jar
commons-logging.jar
commons-validator.jar
jakarta-oro.jar
jstl.jar
log4j-1.2.8.jar
myfacesapi-1.1.4.jar
myfacesimpl-1.1.4.jar
portlet-api.jar
tomahawk.jar

richfaces-api-3.2.0.SR1.jar
richfaces-impl-3.2.0.SR1.jar
richfaces-ui-3.2.0.SR1.jar

No meu jsp eu utilizo assim.. eu nem tinha criando nenhum componente utilizando o richfaces...

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>

<html>
<head>
<title></title>
</head>
<body>
<f:view>
	<h:form id="frmCliente">
		<h:panelGrid columns="2">
			<h:panelGroup>
				<h:outputLabel value="Nome:" />
				<h:inputText value="#{clienteMB.nome}" id="txtNome" />
			</h:panelGroup>
		</h:panelGrid>
		<h:commandButton value="Cadastrar" action="#{clienteMB.cadastrar}" />
	</h:form>
</f:view>
</body>
</html>

Eu já ví que tem bastante gente utilizando os dois em conjunto.. como eu configuro os dois?
Abraço!

8 Respostas

falvesti

Dá página não encontrada mas não lança nenhuma exception?

J

Não… eu estava lendo agora… e tem um pessoal que teve problemas na integração deles… dae ví que muitos utilizam a implemntação da Sun “Sun JSF-RI - 1.2”… estou pesquisando pra ver se encontro alguma coisa sobre… mas o estranho é que ele simplesmente deixa de encontrar as pagina jsp e diz que página não foi encontrada…
;(

falvesti

Eu já usei os dois em conjunto e funcionou normalmente. Vc poderia me mostrar a url q esta digitando?

J
A URL
http://localhost:8080/JSFCRUD/cliente.jsf

E o erro:

HTTP Status 404 - /JSFCRUD/cliente.jsf

--------------------------------------------------------------------------------

type Status report

message /JSFCRUD/cliente.jsf

description The requested resource (/JSFCRUD/cliente.jsf) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.14
J

Você poderia me passar a configuração do seu web.xml e os nomes das bibliotecas que utilizasse? Dae eu compararia aqui e qualquer coisa que baixava as mesmas bibliotecas que vc utilizou!!
Abraço!

J

Na tela não estava aparecendo nada… dae no log apareceu isso:

SEVERE: Error loading WebappClassLoader delegate: false repositories: /WEB-INF/classes/ ----------> Parent Classloader: org.apache.catalina.loader.StandardClassLoader@665753 javax.faces.webapp.FacesServlet java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 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:566) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 17/04/2008 16:22:46 org.apache.catalina.core.StandardContext loadOnStartup SEVERE: Servlet /JSFTeste threw load() exception java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 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:566) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 17/04/2008 16:22:48 org.apache.catalina.core.StandardContext listenerStart SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigureListener java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3773) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) 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:566) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 17/04/2008 16:22:48 org.apache.catalina.core.StandardContext listenerStart

bbmany

Estou com um problema parecido: não consigo acessar a página que defini como inicial.
Não utilizo o MyFaces e só consigo acessar a página inicial quando digito no browser index.jsf ai vai sem problemas e para acessar as outras páginas também preciso inserir o nome_da_pagina.jsf

Se alguém puder ajudar… Agradeço muito.

Inté.

mbrufatto

Boa Noite pessoal!
Desculpem, mas estou iniciando meus estudos com jsf e recebi a dica de utilizar o jbosstools com o myfaces, mas não estou conseguindo configurar o meu eclipse para que essa opção apareça.Alguém poderia me ajudar a configurar meu eclipse para eu possa criar minhas telas em jsf?

Muito Obrigado!

Criado 17 de abril de 2008
Ultima resposta 16 de jul. de 2008
Respostas 8
Participantes 4