Problema com FileUpload do Richfaces - Já li todos os tópicos do GUJ referente ao FileUpload do Guj

7 respostas
S

Bom dia pessoal, estou com um problema com o fileupload do richfaces que não chama o método do fileUploadListener simplesmente não funciona segue o código. Se alguém já tiver passado por esse problema e puder me ajudar ficarei mui grato.
Estou usando a versão 3.3.1 GA do richfaces com JBoss 4.2.2 GA. Não apresenta nenhum erro nem de JSF nem no console.
JSP

<rich:fileUpload
   fileUploadListener="#{atendimentoSinistroBean.doListener}"
   maxFilesQuantity="5"
   id="upload"
   reRender="renderImgUpload"
   immediateUpload="false"
   noDuplicate="true"
   uploadControlLabel="#{m['upload']}"
   cancelEntryControlLabel="#{m['cancelar']}"
   stopControlLabel="#{m['stop']}"
   addControlLabel="#{m['adicionar']}"
   clearAllControlLabel="#{m['clearAll']}"
   clearControlLabel="#{m['clear']}"
   stopEntryControlLabel="#{m['stopUpload']}"
   onerror="alert('ocorreu um erro');">
   <a4j:support event="onuploadcomplete" reRender="info" id="infoUpload"/>
</rich:fileUpload>

web.xml

<filter>
   <display-name>RichFaces Filter</display-name>
   <filter-name>richfaces</filter-name>
   <filter-class>org.ajax4jsf.Filter</filter-class>
   <init-param>
      <param-name>createTempFiles</param-name>
      <param-value>false</param-value>
   </init-param>
   <init-param>
      <param-name>maxRequestSize</param-name>
      <param-value>30000000</param-value>
   </init-param>
</filter>
<filter>
   <filter-name>UploadFilter</filter-name>
   <filter-class>com.sun.webui.jsf.util.UploadFilter</filter-class>
   <init-param>
      <description>O tamanho máximo de carregamento permitido em bytes.  Caso seja definido com um valor negativo, não  máximo.  O valor padrão é 1000000.</description>
       <param-name>maxSize</param-name>
       <param-value>1000000</param-value>
   </init-param>
   <init-param>
      <description>O tamanho (em bytes) de um arquivo carregado que, se for excedido, fará com que o arquivo seja gravado diretamente no disco em vez de armazenado na memória.  Arquivos menores ou iguais a esse tamanho serão armazenados na memória.  O valor padrão é 4096.</description>
      <param-name>sizeThreshold</param-name>
      <param-value>4096</param-value>
   </init-param>
   </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>

ManagedBean

public void paint(OutputStream out, Object obj) throws IOException {
        int row = (Integer) obj;
        out.write((byte[]) (this.atendimentoSinistroForm.getFiles().get(row)).getData());
        out.close();
    }

    public void doListener(UploadEvent event) throws IOException {
        UploadItem item = event.getUploadItem();
        File file = new File(item.getFileName());
        file.setData(item.getData());
        file.setMimeType(item.getContentType());
        this.atendimentoSinistroForm.getFiles().add(file);
    }

7 Respostas

S

Ninguém?

g4j

Difícil dizer só olhando o código cara!

Tente fazer funcionar da forma mais simples primeiro, sem a internacionalização e outras coisas… Depois que tiver redondo você fazo resto.

Hellmanss

Isso deve ser medo daquelas respostas arrogantes de preguiçoso:
“Use a Busca”

:lol:

S

g4j

O problema é que não dá erro nenhum simplesmente não chama o método doListener, retirei a internacionalização e mesmo assim continuou nmão acontecendo nada, é como se o fileUploadListener não escutasse nada, tivesse surdo rsss.

Não chama o método, a tela tá toda pronta faltando apenas esse problema com o fileUpload.

Hellmanss

exatamente por isso que coloquei isso no tópico, olhei todos os tópicos antes de postar este, não encontrei nada parecido com meu problema, aí tive que recorrer a isso.

g4j

faça um teste tirando o esquema de mostrar a imagem pra ver se dá resultado… Tente ir isolando, tirando atributo por atributo do componente também.

S

g4j

Cara retirei todos os atributos do fileUpload e não funcionou do mesmo jeito. Será que não tem algum erro no web.xml? Algum erro de configuração, pq essa parte para mim é a que me dá mais trabalho…

Não consigo mesmo executar o Listener.

Tem mais alguma coisa que você acha que pode ser?

Obrigado.

g4j

Tente refazer separado só a parte de upload, seguindo o exemplo lá do livedemo do richfaces:

http://livedemo.exadel.com/richfaces-demo/richfaces/fileUpload.jsf

Criado 25 de setembro de 2009
Ultima resposta 28 de set. de 2009
Respostas 7
Participantes 3