FileUpload do PrimeFaces não chama fileUploadListener

Eu dei uma olhada no Exemplo, e estou fazendo desse forma.

DAO

package negocio.entidade;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

@Entity
@Table(name = "anexo")
@NamedQueries({
    @NamedQuery(name = "Anexo.findAll", query = "SELECT a FROM Anexo a"),
    @NamedQuery(name = "Anexo.findByAnexoId", query = "SELECT a FROM Anexo a WHERE a.anexoId = :anexoId")})
public class Anexo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "anexo_id", nullable = false)
    private Integer anexoId;
    @Lob
    @Column(name = "anexo")
    private byte[] anexo;

    public Anexo() {
    }

    public Anexo(Integer anexoId) {
        this.anexoId = anexoId;
    }

    public Integer getAnexoId() {
        return anexoId;
    }

    public void setAnexoId(Integer anexoId) {
        this.anexoId = anexoId;
    }

    public byte[] getAnexo() {
        return anexo;
    }

    public void setAnexo(byte[] anexo) {
        this.anexo = anexo;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (anexoId != null ? anexoId.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Anexo)) {
            return false;
        }
        Anexo other = (Anexo) object;
        if ((this.anexoId == null && other.anexoId != null) || (this.anexoId != null && !this.anexoId.equals(other.anexoId))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "negocio.entidade.Anexo[ anexoId=" + anexoId + " ]";
    }
    
}

Ae que vem minha dúvida , quero jogar para minha tabela ou gravar em uma pasta.
Estou seguindo esse exemplo.

MB

package apresentacao.managedbean;

import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.servlet.ServletException;
import negocio.entidade.Anexo;
import org.primefaces.event.FileUploadEvent;

@ManagedBean(name = "anexoMB")
@SessionScoped
public class AnexoMB implements Serializable {

    private EntityManagerFactory factory;
    private byte[] anexo;

    public void handleFileUpload(FileUploadEvent event) throws ServletException {

        FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, msg);
        byte[] foto = event.getFile().getContents();
        Anexo imagem = new Anexo();
        imagem.setAnexo(anexo);

        this.factory = Persistence.createEntityManagerFactory(null);

        EntityManager entityManager = this.factory.createEntityManager();
        entityManager.getTransaction().begin();
        
        try {
            entityManager.getTransaction().commit();
        } catch (Exception e) {
            entityManager.getTransaction().rollback();
            throw new ServletException(e);
        } finally {
            entityManager.close();
        }
    }
}

XHML

<h:form id="UpImagem" enctype="multipart/form-data">  
         <p:messages showDetail="true"/>  
         <p:fileUpload id="upload" update="foto" fileUploadListener="#{AnexoMB.handleFileUpload}" auto="true"/>   
</h:form>

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>

ver o exemplo que fiz só baixar

http://depositfiles.com/files/tcqy146zq

Eaeeeee pessoallll!!!
Nossa tive problema com esse negócio ai… fiquei semanas para conseguir resolver…
desisti…e qdo resolvi voltar resolvi em algumas horas… acho que foi pq refresquei a cabeça e soube pesquisar melhor!
Vamos la!!! vou postar as configurações e vocês tentam ai!!

Primeiro eu estou utilizando a versão 3.0 do Primefaces, mas acho que a 3.0.1 e a 3.1 funcionam normalmente!

Vamos configurar o web.xml

Adicionem o seguinte código.

<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>

Depois vocês precisam utilizar as bibliotecas

commons.fileupload-1.2.2.jar
site: http://commons.apache.org/fileupload/download_fileupload.cgi

commons.io-2.1.jar
site: http://commons.apache.org/io/download_io.cgi

Em seguida aqui está o código que eu uso na minha página XHTML, no meu caso eu só estou utilizando arquivos “PDF” e “DOC”, chamando o método carregaArquivo na minha classe EmpresaBean.

<h:panelGroup>
	<p:fileUpload fileUploadListener="#{empresaBean.carregaArquivo}"  
		mode="advanced"   
		update="messages"  
		sizeLimit="100000"   
		allowTypes="/(\.|\/)(doc|pdf)$/" id="arquivo">
		<p:growl id="messages" showDetail="true"/> 
	</p:fileUpload>
		
</h:panelGroup>

Agora a minha classe Bean.

public void carregaArquivo(FileUploadEvent event) throws IOException {
	this.arquivo = event.getFile();

	FacesContext ctx = FacesContext.getCurrentInstance();
	FacesMessage msg = new FacesMessage();

	msg.setSummary("Arquivo anexado com sucesso.");
	msg.setSeverity(FacesMessage.SEVERITY_INFO);

	ctx.addMessage("mensagens", msg);
}

Boa sorte pessoal!
Espero que ajudem vocês.

Meu Deus …
Mas precisa esse caminhão de jar (s) ???

To falando desse exemplo aqui : http://depositfiles.com/files/tcqy146zq

funciona, mas tem um caminhão de lib …

[quote=joaoorso]Meu Deus …
Mas precisa esse caminhão de jar (s) ???[/quote]

São Apenas 2 jars.

[quote=Furlani][quote=joaoorso]Meu Deus …
Mas precisa esse caminhão de jar (s) ???[/quote]

São Apenas 2 jars.[/quote]

Desculpe, to falando do exemplo que tá no depositfiles…
O exemplo funcionou aqui pra mim.

Alguem poderia postar o projeto para download de um exemplo que esteja funcionando ? Já tentei de tudo e to começando agora na empresa ;/ Obrigado desde já

Cara eu fiz um exemplo com o p:fileUpload no meu blog http://miguellimapj.blogspot.com.br/

Obrigado pela dica, mas… handleFileUpload não é chamado, quando paro com o cursor em cima dele diz o seguinte: Propriedade handleFileUpload desconhecida.

tem idéia do que pode ser ?

=======

Achei aqui, quando você usa handleFileUpload(event) ele não aparece a mensagem que a propriedade é desconhecida, mas também não funciona, porem sem o event (handleFileUpload) fica a mensagem, mas funciona.

Obrigado pelas dicas, funcionou direitinho;

Agradecido!