[RESOLVIDO?]Problemas ao migrar de RichFaces para PrimeFaces 2.2.1

8 respostas
vinnysoft

Boa Noite pessoal.

Dei uma pesquisada na internet e no fórum, e resolvi alterar o framework de uma aplicação web que possuo de RichFaces para PrimeFaces.

Percebi que a configuração é bem simples, basta adicionar o jar do PrimeFaces no classpath e usar a namespace. Consegui fazer funcionar normalmente quando crio um projeto web novo com JSF 2.0 + PrimeFaces 2.2.1 (uso NetBeans 6.9.1 e Tomcat 6). Os componentes funcionam perfeitamente.

Decidi então trocar o RichFaces pelo PrimeFaces nesta aplicação, mas para minha surpresa os componentes do PrimeFaces não apareceram. É muito estranho, cheguei a copiar a mesma pagina que funcionou na aplicacao nova para dentro da aplicacao anterior e nao funciona.

Pelo que sei não há mais nenhuma configuração a fazer para rodar o PrimeFaces.

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui">

    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        Hello from Facelets
        <p:spinner/>
    </h:body>
</html>

Essa pagina funciona se crio uma nova aplicação e adiciono o jar. Se eu adicionar o jar na aplicação antiga que estava com o RichFaces e tentar abrir essa pagina, só aparece o texto “Hello from Facelets”, mas o componente <p:spinner /> não aparece.

Alguém tem alguma ideia?

Obrigado!

8 Respostas

lazaropj

Tem q ter uma configuração no web.xml para usar o prime

vc fez?

vinnysoft

Pelo que vi nos tópicos só precisava para o Prime 2.1. No 2.2.1 já não precisaria mais.

Mas fiz assim no web.xml:

<servlet>
                <servlet-name>Resource Servlet</servlet-name>
                <servlet-class>org.primefaces.ui.resource.ResourceServlet</servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>

        <servlet-mapping>
                <servlet-name>Resource Servlet</servlet-name>
                <url-pattern>/primefaces_resources/*</url-pattern>
        </servlet-mapping>

Mesmo assim não funciona. Quando executo em uma nova aplicação, não preciso mexer no web.xml. Funciona logo de cara!

Estou colocando em anexo as imagens do browser executando com o código acima.

A imagem 1 esta a aplicação antiga que tinha o RichFaces e substitui pelo PrimeFaces. Não aparece componente nenhum.

A imagem 2 está com a nova aplicação web, com o mesmo código, e aparece o componente normalmente.

Se tiver mais alguma ideia, agradeço!

Obrigado.




lazaropj

é camarada… então não sei oq pode ser…
mas parece ser alguma configuração em algum xml…

já tentou pegar o web.xml da aplicação q está funfando e colocar nessa aplicação q não está funfando?

pod ser uma saída…

vinnysoft

Amigo,

Não tentei ainda, mas o que tem no web.xml novo já tem no antigo. O código do web.xml novo é:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</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>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>default.html</welcome-file>
    </welcome-file-list>
</web-app>

Além disso, o anterior tem mais uns itens configurados de um scheduler e um filtro. Acho que vou acabar fazendo do zero com JSF 2.0 + PrimeFaces mesmo.

Obrigado.

Kleber-rr

Eae amigo, conseguiu resolver teu problema? qual versão de JSF vc está utilizando?

vinnysoft

Acabei desistindo, então criei um projeto novo com o PrimeFaces e migrei tudo. Foi mais fácil! rs

Kleber-rr

Entendo… Vou pensar no assunto. Valeu man.

satangoss

estou com o mesmo problema estou utilizando o primefaces 2.2.1 com o seguinte web.xml:

web.xml
<filter>  
	<filter-name>PrimeFaces FileUpload Filter</filter-name>  
	<filter-class> org.primefaces.webapp.filter.FileUploadFilter</filter-class>  
  </filter>  

  <filter-mapping>  
	<filter-name>PrimeFaces FileUpload Filter</filter-name>  
	<servlet-name>Faces Servlet</servlet-name>  
  </filter-mapping>

view:

<h:form id="envia">
			<h:outputLabel>Enviar Arquivo:</h:outputLabel>
			<p:fileUpload label="Procurar..." allowTypes="*.jpg"
				id="enviaProjeto" fileUploadListener="#{FormBean.handleFileUpload}"
				sizeLimit="9999999" auto="false" />

</h:form>
bean:
@ManagedBean(name = "FormBean")
@SessionScoped
public class FormBean implements Serializable {
public void handleFileUpload(FileUploadEvent event) {
		// Salva em disco o arquivo enviado
		try {
			InputStream is = event.getFile().getInputstream();
			// salva o arquivo
			int i = 0;
			File f = new File("D:\\fabricasw\\workspace\\arquivosEnviados\\"
					+ event.getFile().getFileName());
			FileOutputStream fos = new FileOutputStream(f);

			while ((i = is.read()) != -1) {
				fos.write(i);
			}
			fos.close();
			// Mensagem de sucesso
			FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO,
					"Sucesso", "Upload do arquivo"
							+ event.getFile().getFileName()
							+ " realizado com sucesso.");
			FacesContext.getCurrentInstance().addMessage(null, msg);

		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

o fileUpload simplesmente chama o método do bean mostra como upload feito mas entra no método passa direto, verifiquei isso no debug, coloquei alguns breakpoints e não parou.

Criado 19 de abril de 2011
Ultima resposta 20 de out. de 2011
Respostas 8
Participantes 4