PrimeFaces não mostra a imagem "StreamedContent"

Pessoal faz uns 5 dias que estou quebrando a cabeça com isso e não consigo resolver, espero contar com vocês

É o seguinte estou usando fileUpload do prime para carregar algumas imagens, até ai tudo bem eu consigo carregar essas imagens, porem na hora de mostrar em um <p:dataGrid a imagem não aparece…

Não sei mais o que fazer

veja o código(código de teste)…

.xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <title>Cadastro de Album</title>
    </h:head>
    <f:view>
        <h:body>
            <h:form id="frmGridAlbum">
                <p:growl id="menssagensAlbum"
                         life="3000"/>
                <p:dataTable id="dtAlbuns"
                             widgetVar="dtAlbuns"
                             var="album"
                             value="#{albumMB.albuns}"
                             paginator="true"
                             rows="5"
                             selection="#{albumMB.album}"
                             selectionMode="single"
                             onRowSelectComplete="dlgAlbum.show();"
                             emptyMessage="Nao existe Album cadastrado"
                             style="width:60%"
                             update="frmCadastroAlbum:somCliente, frmCadastroAlbum:itaDescricao, frmCadastroAlbum:dgdFotos, frmCadastroAlbum:clkGravar, frmCadastroAlbum:clkAlterar">
                    <p:column sortBy="#{album.id}"
                              filterBy="#{album.id}">
                        <f:facet name="header">
                            <h:outputText value="Id" />
                        </f:facet>
                        <h:outputText value="#{album.id}" />
                    </p:column>
                    <p:column sortBy="#{album.cliente.nome}"
                              filterBy="#{album.cliente.nome}">
                        <f:facet name="header">
                            <h:outputText value="Cliente" />
                        </f:facet>
                        <h:outputText value="#{album.cliente.nome}" />
                    </p:column>
                </p:dataTable>
                <p:panel style="width:59.2%">
                    <p:commandLink id="clkIncluir"
                                   title="Incluir"
                                   oncomplete="dlgAlbum.show()"
                                   action="#{albumMB.incluir}"
                                   update="frmCadastroAlbum:somCliente, frmCadastroAlbum:itaDescricao, frmCadastroAlbum:dgdFotos, frmCadastroAlbum:clkGravar, frmCadastroAlbum:clkAlterar">
                        <h:graphicImage url="/imagens/novo.jpg"
                                        style="border:0"/>
                    </p:commandLink>
                    <p:commandLink title="Apagar"
                                   actionListener="#{albumMB.apagar}"
                                   style="margin-left:20px"
                                   update="frmGridAlbum"
                                   oncomplete="dlgAlbum.hide();">
                        <h:graphicImage url="/imagens/apagar.jpg"
                                        style="border:0"/>
                    </p:commandLink>
                    <h:commandLink title="Voltar"
                                   action="#{albumMB.voltar}"
                                   style="margin-left:20px">
                        <h:graphicImage url="/imagens/voltar.jpg"
                                        style="border:0"/>

                    </h:commandLink>
                </p:panel>
            </h:form>
            <h:form id="frmCadastroAlbum">

                <p:dialog id="dlgAlbum"
                          widgetVar="dlgAlbum"
                          header="Album"
                          width="700">
                    <h:outputLabel value="imagem"
                                   for="gi"/>
                    <p:graphicImage id="gi" value="#{albumMB.imagem}"/>
                    <h:panelGrid columns="2">
                        <h:outputLabel value="Cliente:"
                                       for="somCliente" />
                        <h:selectOneMenu id="somCliente"
                                         value="#{albumMB.album.cliente.nome}"
                                         required="true"
                                         requiredMessage="Informe a descricao">
                            <f:selectItems value="#{albumMB.clientes}"
                                           var="cliente"
                                           itemValue="#{cliente.id}"
                                           itemLabel="#{cliente.nome} CPF : #{cliente.cpf}"/>
                        </h:selectOneMenu>
                        <h:outputLabel value="Descricao:"
                                       for="itaDescricao"/>
                        <p:inputTextarea id="itaDescricao"
                                         value="#{albumMB.album.descricao}"
                                         required="true"
                                         requiredMessage="Informe a descricao"/>
                    </h:panelGrid>
                    <p:dataGrid id="dgdFotos"
                                var="imagem"
                                value="#{albumMB.imagens}"
                                columns="2"
                                rows="1"
                                paginator="true"
                                style="width:30%">
                        <p:column>
                               <p:graphicImage id="gii" 
                                               value="#{imagem}"/>
                        </p:column>
                    </p:dataGrid>
                    <h:panelGrid columns="3" >
                        <p:fileUpload id="fudSelecionarFotos"
                                      fileUploadListener="#{albumMB.selecionarFoto}"
                                      multiple="true"
                                      allowTypes="*.jpg;*.png;*.gif;"
                                      description="Images"
                                      update="dgdFotos, gi"
                                      style="margin-right:20px"/>
                        <p:commandLink  id="clkGravar"
                                        title="Gravar"
                                        action="#{albumMB.gravar}"
                                        disabled="#{!empty albumMB.album.id}"
                                        style="margin-right:20px"
                                        update="frmCadastroAlbum:somCliente, frmCadastroAlbum:itaDescricao, frmCadastroAlbum:dgdFotos, frmGridAlbum:menssagensAlbum, frmGridAlbum:dtAlbuns">
                            <h:graphicImage url="/imagens/gravar.jpg"
                                            style="border:0"/>
                        </p:commandLink>
                        <p:commandLink id="clkAlterar"
                                       title="Alterar"
                                       action="#{albumMB.album}"
                                       disabled="#{empty albumMB.album.id}"
                                       update="frmCadastroAlbum:somCliente, frmCadastroAlbum:itaDescricao, frmCadastroAlbum:dgdFotos, frmGridAlbum:menssagensAlbum, frmGridAlbum:dtAlbuns"
                                       style="margin-left:20px">

                            <h:graphicImage url="/imagens/alterar.bmp"
                                            style="border:0"/>

                        </p:commandLink>
                    </h:panelGrid>

                </p:dialog>
            </h:form>
        </h:body>
    </f:view>
</html>

MB

  public void selecionarFoto(FileUploadEvent event) throws IOException {
        System.out.println("okkk");

        UploadedFile uf = event.getFile();
        String nomeArquivo = uf.getFileName();
        InputStream is = null;
        Foto foto = new Foto();
        String caminho = "C:"+File.separator+"img"+File.separator+nomeArquivo;
      try {
            is = uf.getInputstream();
            byte[] b = new byte[is.available()];
            InputStream stream = new ByteArrayInputStream(b);
            foto.setNome(nomeArquivo);
            foto.setFoto(b);
            //BufferedImage img = ImageIO.read(event.getFile().getInputstream());
            //File file = new File(caminho);
            //boolean write = ImageIO.write(img, "jpg", file);
            //FileInputStream fi = new FileInputStream(file);
            //System.out.println("escreveu?? " +write);
            this.imagem = new DefaultStreamedContent(stream);
            this.getImagens().add(new DefaultStreamedContent(stream));
            foto.setImagem(new DefaultStreamedContent(stream));
           
           
            //foto.setImagem(new DefaultStreamedContent(stream));
            //foto.setImagem(new DefaultStreamedContent(event.getFile().getInputstream()));
            fotos.add(foto);
            //this.imagem = new DefaultStreamedContent(stream);
            System.out.println("okkk nome"+ foto.getImagem());
            JSFUtil.enviarMenssagemSucesso("Upload realizado com sucesso.");
        } catch (Exception e) {
            e.printStackTrace();
            JSFUtil.enviarMenssagemErro("Erro ao realizar o Upload.");
        } finally {
            try {
                is.close();
            } catch (IOException ex) {
                ex.printStackTrace();
                JSFUtil.enviarMenssagemErro("Erro ao realizar o Upload.");
            }
        }
    }

NÃO DA NENHUM ERRO APENAS NÃO APARECE A IMAGEM,

Ajuda ai pessoal

Obrigado

Pessoal uma observação

eu mando imprimir o objeto imagem (StreamedContent)

  this.imagem = this.getFoto().getImagem();
  System.out.println("Fotoo "+imagem);

e ele imprimi e o valor impresso é

Fotoo org.primefaces.model.DefaultStreamedContent@8e6591

ou seja o objeto está lá. o prime só não consegui rendereizar este objeto…

preciso de ajuda

Iae galera, alguem vai poder me ajudar?

Preciso de ajuda ai

A id de uma das suas graphic image é gi

Mas o FileUpload manda atualizar a “gii”

<p:fileUpload id="fudSelecionarFotos" fileUploadListener="#{albumMB.selecionarFoto}" multiple="true" allowTypes="*.jpg;*.png;*.gif;" description="Images" update="dgdFotos, gi" style="margin-right:20px"/>

A sua outra graphic imagem tem o ID gii

<p:graphicImage id="gii" value="#{imagem}"/>
Mas ela recebe a value como “imagem” que é a var da sua dataGrid

agora decida oq voce realmente quer atualizar para receber o novo valor imagem (StreamedContent) da MB :wink:

É que é o seguinte,isto que eu fiz é para teste…

eu fiz as duas coisas,

o <p:graphicImage id=“gii"
value=”#{imagem}"/>

vem de um lista… no blog quebrandoParadigma o pessoal falou que o dataTable ou dataGrid etc, não suporta lista de
StreamedContent eu queria confirma se isso é verdade com alguem de vcs?
por isso eu não estou atualizando o “gii”…por enquanto deixei de lado…

pra mim atualizando o gi já esta de bom tamanho, porem nem isso ele está fazendo…

Obrigado pela ajuda.

?

Ainda não tive a oportunidade de testar os componentes que você está a usar.

Atualmente, tive que parar o desenvolvimento de um sistema web e estou dando suporte à um sistema swing em produção.

abraços

Okey, pessoal mais alguem pode me ajudar?

estou passando por um problema parecido.

no meu caso temos problemas com o file upload também, não é sempre(funciona quando quer…)

estamos com primefaces 2.2.1, e utilizando Spring

toda vez que passo por uma página que possui o elemento p:graphicImage recebo essa excessão

GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/aplicacao] threw exception [null] with root cause
java.lang.NullPointerException
	at org.primefaces.application.DynamicContentStreamer.streamDynamicContent(DynamicContentStreamer.java:78)
	at org.primefaces.application.DynamicContentStreamer.beforePhase(DynamicContentStreamer.java:57)
	at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:224)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:95)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:163)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
12/04/2011 11:41:21 org.apache.catalina.core.ApplicationDispatcher invoke
GRAVE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
	at org.primefaces.application.DynamicContentStreamer.streamDynamicContent(DynamicContentStreamer.java:78)
	at org.primefaces.application.DynamicContentStreamer.beforePhase(DynamicContentStreamer.java:57)
	at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:224)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:95)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:674)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:464)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:401)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
	at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:464)
	at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:313)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:177)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
12/04/2011 11:41:21 org.apache.catalina.core.StandardHostValve custom
GRAVE: Exception Processing ErrorPage[exceptionType=java.lang.Exception, location=/error.jsf]
javax.servlet.ServletException
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:674)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:464)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:401)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
	at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:464)
	at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:313)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:177)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:242)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:267)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:245)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:260)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
	at org.primefaces.application.DynamicContentStreamer.streamDynamicContent(DynamicContentStreamer.java:78)
	at org.primefaces.application.DynamicContentStreamer.beforePhase(DynamicContentStreamer.java:57)
	at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:224)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:95)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
	... 20 more

o bom é que não encontrei resultados na internet e essa exceção não passa por nenhuma classe da nossa aplicação.

caso alguém tiver algo a contribuir, será bem vindo

att
Vitor

Estou com o mesmo problema .

Fiz igual esse exemmplo

http://quebrandoparadigmas.com/?p=168

Alguem conseguiu resolver ?

Consegui resolver.

O meu ManagedBean estava como ViewScoped, eu troquei para SessionScoped.

Esta funcionando sem problemas agora.

O meu não consigo resolver por nada, mais vc está usando o StreamContent? OU esta gravando imagem e setando o caminho
?

Sim uso o StreamedContent

segue o codigo abaixo:

Managed Bean

@ManagedBean(name = "cadastroFace")
@SessionScoped
public class CadastroFace extends Face {

        
    private byte[] foto;
    private StreamedContent imagem;  

    public CadastroFace() {
        
    }    

    public StreamedContent getImagem() {        
        return imagem;
    }

    public void setImagem(StreamedContent imagem) {
        this.imagem = imagem;
    }


    public void handleFileUpload(FileUploadEvent event)throws IOException {
        
        //salva a imagen no StreamedContent para ser visualizada antes de salvar no disco
        imagem = new DefaultStreamedContent(event.getFile().getInputstream(), "image/jpeg", event.getFile().getFileName());          
        foto = event.getFile().getContents(); 
    }    
    
    public void salvar() throws Exception { 
             // salva a imagen no disco
            //passo o parametro 'foto' com o bytes gerados no momento do upload da foto
            criaArquivo(foto, "c:/foto/nomeImagen.jpg");
    }
    


    public void criaArquivo(byte[] bytes, String arquivo) throws IOException {
        FileOutputStream fos;        
        fos = new FileOutputStream(arquivo);
        fos.write(bytes);
        fos.close();
    }
}

Pagina web

...
<p:fileUpload   fileUploadListener="#{cadastroFace.handleFileUpload}"  label="Procurar..." auto="true" allowTypes="*.jpg;*.png;*.gif;" update="imagem"  description="Images" multiple="false"/> 

<p:graphicImage value="#{cadastroFace.imagem}" cache="false" width="250" height="200"  id="imagem"/>

<p:commandButton value="Gravar" action="#{cadastroFace.salvar()}"    />
...

Além do jar do primefaces é necessário que sejam adicionando dois novos jar nas bibliotecas do seu projeto:

commons-fileupload1.2.2 http://commons.apache.org/fileupload/download_fileupload.cgi

commons-io2.0.1.jar http://commons.apache.org/io/download_io.cgi

e tambén de adicionar essa configuração no 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>

...

Isto já esta configurado.

Obrigado por ajudar

dae galera! To na mesma tbm… já configurei web.xml, baixei os commons e nada!

antes travava o upload, agora ele da “HTTP ERROR” em tudo… passei a tarde inteira hj fazendo teste, buscando na net NÃO CONSIGO!

Caso não dê com o primefaces, tem como fazer na mão? usando um input type=“file”?

Netbeans 6.9 - Windows 7 Pro - PrimeFaces 2.1 - Glassfish 3.01

O meu upload funciona normal, o que não consigo resolver é em relação ao p:grapicImage que não mostra a imagem de um StreanContent

será q vc pode me ajudar então? não sei se é do netbeans (pq os arquivos de configuração ficam em locais diferentes), mas não vai cara! vou postar meus arquivos e se alguem puder corrigir/dar uma dica eu agradeceria muito!

Talvez tenha q fazer algo no sun-web.xml ou web-fragment.xml que o netbeans cria? Alguma configuração no Glassfish?

Só pra confirmar, já importei o commons-io 2.0.1 e o fileupload 1.2.2 tbm. Meu ambiente de desenvolvimento: Netbeans 6.9.1 - Windows 7 Pro - PrimeFaces 2.1 - Hibernate 3 - Glassfish 3.01

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <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>
    <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>*.xhtml</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>

admin.xhtml

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

    <ui:define name="mainContent">
        <p:fileUpload fileUploadListener="#{adminBean.handleFileUpload}" update="t2" />
        <h:outputText id="t2" value="#{adminBean.text}" />
    </ui:define>
</ui:composition>

AdminBean.java

@ManagedBean
@RequestScoped
public class AdminBean {

    private String text;

    public void handleFileUpload(FileUploadEvent event) {
        this.text = event.getFile().getFileName();
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}

desde já agradeço!