UploadedFile retorno na variável como NULL

bom dia pessoal…

estou precisando da ajuda dos senhores.
sou aprendiz no mundo java jsf hibernate jboss e mais…

estou desenvolvendo web em java
e estou precisando fazer upload e download de arquivos.
estou começando pelo upload…
estou usando UploadedFile.
quando chamo o metodo vejo que o arquivo esta vindo null.
estou postando minhas jsp, bean e web.xml.
por favor veja onde estou pecando…

valeu…

[color=darkred]jsp -----

<%@ page contentType=“text/html;charset=iso-8859-1” language=“java”%>
<%@ taglib prefix=“f” uri=“http://java.sun.com/jsf/core”%>
<%@ taglib prefix=“h” uri=“http://java.sun.com/jsf/html”%>
<%@ taglib prefix=“rich” uri=“http://richfaces.org/rich”%>
<%@ taglib prefix=“a4j” uri=“http://richfaces.org/a4j”%>
<%@ taglib prefix=“t” uri=“http://myfaces.apache.org/tomahawk”%>

<f:subview id=“cadastraracaoTerceiroPasso”>

&lt;meta http-equiv="Content-Type" content="text/html; charset-ISO-8859-1"&gt;
&lt;h:form id="formularioAcaoTerceiroPasso"&gt;

	&lt;h:inputHidden value="#{acaoTerceiroPassoBean.operacao}" /&gt;
	&lt;t:saveState value="#{acaoTerceiroPassoBean}"&gt;&lt;/t:saveState&gt;


	&lt;h:outputText value="1º Passo: Inserir Documentos "
		styleClass="tituloSecao" /&gt;
	&lt;h:outputText value="" styleClass="tituloSecao" /&gt;
	&lt;h:outputText value="" styleClass="tituloSecao" /&gt;

	<br />


	&lt;h:outputText value="Número do Processo:" styleClass="tituloSecao" /&gt;

	&lt;h:outputLabel value="#{acaoTerceiroPassoBean.numeroAcao}"
		styleClass="tituloSecao" /&gt;

	&lt;h:panelGrid columns="3" columnClasses="colEsquerda, colDireita"&gt;


		&lt;h:form enctype="multipart/form-data"&gt;
			&lt;t:inputFileUpload id="arquivo" value="#{uploadBean.arquivo}"
				storage="file" required="true" /&gt;

			&lt;h:commandButton action="#{acaoTerceiroPassoBean.mostrarArquivo}"
				value="Enviar" /&gt;
			&lt;h:outputText value="Nome: " /&gt;
			&lt;h:outputText value="#{acaoTerceiroPassoBean.nomeArquivo}" /&gt;
		&lt;/h:form&gt;

	&lt;/h:panelGrid&gt;

&lt;/h:form&gt;

</f:subview>
[/color]

bean ----

[color=blue]package br.jus.tjrn.prodigiu.web.faces.beans;

import org.apache.myfaces.custom.fileupload.UploadedFile;

import br.gov.tjrn.arq.exceptions.ArquiteturaException;
import br.jus.tjrn.prodigiu.dao.AcaoPrimeiroDAO;
import br.jus.tjrn.prodigiu.dominio.AcaoPrimeiro;

public class AcaoTerceiroPassoBean extends AbstractRefactoredBean {

private static final long serialVersionUID = 3274515763385414133L;

MenuBean menu = new MenuBean();
AcaoPrimeiro acao = new AcaoPrimeiro();
private String numeroAcao;
private UploadedFile arquivo;
private String nomeArquivo;
private long tamanhoArquivo;

@Override
protected String getTituloModulo() {
	return &quot;AcaoPrimeiro&quot;;
}

public AcaoTerceiroPassoBean() throws ArquiteturaException {
	menu = UtilBean.getMenu();
	acao = AcaoPrimeiroDAO.tipoAssuntoPorNome(menu.getAcaoPrimeiraForm()
			.getNumeroAcao());
	setNumeroAcao(acao.getNumeroAcao());

}

public MenuBean getMenu() {
	return menu;
}

public void setMenu(MenuBean menu) {
	this.menu = menu;
}

public AcaoPrimeiro getAcao() {
	return acao;
}

public void setAcao(AcaoPrimeiro acao) {
	this.acao = acao;
}

public String getNumeroAcao() {
	return numeroAcao;
}

public void setNumeroAcao(String numeroAcao) {
	this.numeroAcao = numeroAcao;
}

@Override
protected void afterAlterar() {
	// TODO Auto-generated method stub

}

@Override
protected void afterExcluir() {
	// TODO Auto-generated method stub

}

@Override
protected void afterIncluir() {
	// TODO Auto-generated method stub

}

@Override
protected void beforeExibirAlteracao() {
	// TODO Auto-generated method stub

}

@Override
protected void beforeExibirExclusao() {
	// TODO Auto-generated method stub

}

@Override
protected void beforeExibirInclusao() {
	// TODO Auto-generated method stub

}

@Override
protected void beforeExibirPesquisar() {
	// TODO Auto-generated method stub

}

@Override
protected void carregarDadosApoioEdicaoImpl() throws Exception {
	// TODO Auto-generated method stub

}

@Override
protected void carregarDadosApoioPesquisaImpl() throws Exception {
	// TODO Auto-generated method stub

}

@Override
protected void carregarDadosFormImpl() throws Exception {
	// TODO Auto-generated method stub

}

@Override
protected void excluirImpl() throws Exception {
	// TODO Auto-generated method stub

}

@Override
protected String getDiretorioDasPaginas() {
	// TODO Auto-generated method stub
	return null;
}

@Override
protected String getPaginaDeAlteracao() {
	// TODO Auto-generated method stub
	return null;
}

@Override
protected String getPaginaDeExclusao() {
	// TODO Auto-generated method stub
	return null;
}

@Override
protected String getPaginaDeInclusao() {
	// TODO Auto-generated method stub
	return null;
}

@Override
protected String getPaginaDePesquisa() {
	// TODO Auto-generated method stub
	return null;
}

@Override
protected void incluirAlterarImpl() throws Exception {
	// TODO Auto-generated method stub

}

@Override
protected void pesquisarImpl() throws Exception {
	// TODO Auto-generated method stub

}
 public String getNomeArquivo() {  
        return nomeArquivo;  
    }  
  
    public void setNomeArquivo(String nomeArquivo) {  
        this.nomeArquivo = nomeArquivo;  
    }  
  
    public long getTamanhoArquivo() {  
        return tamanhoArquivo;  
    }  
  
    public void setTamanhoArquivo(long tamanhoArquivo) {  
        this.tamanhoArquivo = tamanhoArquivo;  
    }  
  
    public UploadedFile getArquivo() {  
        return arquivo;  
    }  
  
    public void setArquivo(UploadedFile arquivo) {  
        this.arquivo = arquivo;  
    }     
      
    public String mostrarArquivo() {  
        setNomeArquivo(arquivo.getName());  
        setTamanhoArquivo(arquivo.getSize());  
        return null;                  
    }  

}
[/color]
web-xml

[color=violet][color=cyan]<?xml version=“1.0” encoding=“UTF-8”?>
<web-app 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
version=“2.5”>

&lt;context-param&gt;
	&lt;param-name&gt;javax.faces.CONFIG_FILES&lt;/param-name&gt;
	&lt;param-value&gt;
		 /WEB-INF/faces/faces-navigation.xml
		,/WEB-INF/faces/faces-beans.xml
		,/WEB-INF/faces/faces-config.xml
		,/WEB-INF/faces/faces-converters.xml
	&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;context-param&gt;
	&lt;param-name&gt;javax.faces.STATE_SAVING_METHOD&lt;/param-name&gt;
	&lt;param-value&gt;client&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;!-- Faces Servlet --&gt;
&lt;servlet&gt;
	&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
	&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
	&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
&lt;/servlet&gt;

&lt;!-- Faces Servlet Mapping --&gt;
&lt;servlet-mapping&gt;
	&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
	&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;

&lt;!-- Tiles Servlet --&gt;
&lt;servlet&gt;
	&lt;servlet-name&gt;Tiles Servlet&lt;/servlet-name&gt;
	&lt;servlet-class&gt;org.apache.struts.tiles.TilesServlet&lt;/servlet-class&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;definitions-config&lt;/param-name&gt;
		&lt;param-value&gt;/WEB-INF/tiles/tiles-defs.xml&lt;/param-value&gt;
	&lt;/init-param&gt;
	&lt;load-on-startup&gt;2&lt;/load-on-startup&gt;
&lt;/servlet&gt;

&lt;!--
	Filtro para verificar se o usuario está autenticado &lt;filter&gt;
	&lt;filter-name&gt;VerificaAutenticacaoFilter&lt;/filter-name&gt; &lt;filter-class&gt;
	br.jus.tjrn.previne.web.filter.VerificaAutenticacaoFilter
	&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt;
	&lt;filter-name&gt;VerificaAutenticacaoFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;filter-mapping&gt;
	&lt;filter-name&gt;VerificaAutenticacaoFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt; &lt;/filter-mapping&gt;
--&gt;
&lt;!--
	Parametro de inicialização dos servidores para autenticação no
	ActiveDirectory. Pode ser incluido mais de um servidor AD, para isso
	basta separar as informações com ";". Cada configuracao de servidor
	deve possuir três argumentos separados por "#": o 1º é o endereço do
	servidor, o 2º é o dominio (com "@' no inicio) e o 3º é o root do AD
--&gt;
&lt;context-param&gt;
	&lt;param-name&gt;servidoresActiveDirectory&lt;/param-name&gt;
	&lt;!--
		para ser utilizado quando a aplicação estiver EM DESENVOLVIMENTO
	--&gt;
	&lt;param-value&gt;
		10.100.7.120 # @intrajus.tjrn # DC=intrajus,DC=tjrn
	&lt;/param-value&gt;

	&lt;!-- para ser utilizado quando a aplicação estiver EM PRODUÇÃO --&gt;
	&lt;!--
		&lt;param-value&gt; ldap.tjrn.gov.br:1389 # @intrajus.tjrn #
		DC=intrajus,DC=tjrn &lt;/param-value&gt;
	--&gt;
&lt;/context-param&gt;

&lt;!-- Session Timeout (minutes) --&gt;
&lt;session-config&gt;
	&lt;session-timeout&gt;30&lt;/session-timeout&gt;
&lt;/session-config&gt;

&lt;!-- Welcome files --&gt;
&lt;welcome-file-list&gt;
	&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
&lt;/welcome-file-list&gt;

&lt;!-- Página para exibição dos erros --&gt;
&lt;error-page&gt;
	&lt;error-code&gt;500&lt;/error-code&gt;
	&lt;location&gt;/errorPage.jsf&lt;/location&gt;
&lt;/error-page&gt;

&lt;!-- RichFaces --&gt;

&lt;context-param&gt;
	&lt;param-name&gt;org.richfaces.SKIN&lt;/param-name&gt;
	&lt;param-value&gt;DEFAULT&lt;/param-value&gt;
&lt;/context-param&gt;

&lt;filter&gt;
	&lt;display-name&gt;RichFaces Filter&lt;/display-name&gt;
	&lt;filter-name&gt;richfaces&lt;/filter-name&gt;
	&lt;filter-class&gt;org.ajax4jsf.Filter&lt;/filter-class&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;createTempFiles&lt;/param-name&gt;
		&lt;param-value&gt;false&lt;/param-value&gt;
	&lt;/init-param&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;maxRequestSize&lt;/param-name&gt;
		&lt;param-value&gt;10485760&lt;/param-value&gt;
	&lt;/init-param&gt;
&lt;/filter&gt;

&lt;filter-mapping&gt;
	&lt;filter-name&gt;richfaces&lt;/filter-name&gt;
	&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
	&lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
	&lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
	&lt;dispatcher&gt;INCLUDE&lt;/dispatcher&gt;
&lt;/filter-mapping&gt;

&lt;!-- Fim do RichFaces --&gt;

&lt;!-- Extensions Filter --&gt;
&lt;filter&gt;
	&lt;filter-name&gt;extensionsFilter&lt;/filter-name&gt;
	&lt;filter-class&gt;org.apache.myfaces.component.html.util.ExtensionsFilter&lt;/filter-class&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;uploadMaxFileSize&lt;/param-name&gt;
		&lt;param-value&gt;100m&lt;/param-value&gt;
		&lt;!--
			Set the size limit for uploaded files. Format: 10 - 10 bytes 10k -
			10 KB 10m - 10 MB 1g - 1 GB // 1920k = 1.875Mb // Valor Anterior:
			&lt;param-value&gt;100m&lt;/param-value&gt; 1MB = 1024KB 1GB = 1024MB
		--&gt;
	&lt;/init-param&gt;
	&lt;init-param&gt;
		&lt;param-name&gt;uploadThresholdSize&lt;/param-name&gt;
		&lt;param-value&gt;100k&lt;/param-value&gt;
		&lt;!--
			Set the threshold size - files below this limit are stored in
			memory, files above this limit are stored on disk. Format: 10 - 10
			bytes 10k - 10 KB 10m - 10 MB 1g - 1 GB
		--&gt;
	&lt;/init-param&gt;
	
&lt;/filter&gt;


&lt;filter-mapping&gt;
	&lt;filter-name&gt;extensionsFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
&lt;filter-mapping&gt;
	&lt;filter-name&gt;extensionsFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;/faces/*&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;


&lt;!-- MyFaces --&gt;
&lt;!--
	&lt;context-param&gt;
	&lt;param-name&gt;org.apache.myfaces.ALLOW_JAVASCRIPT&lt;/param-name&gt;
	&lt;param-value&gt;true&lt;/param-value&gt; &lt;/context-param&gt; &lt;context-param&gt;
	&lt;param-name&gt;org.apache.myfaces.DETECT_JAVASCRIPT&lt;/param-name&gt;
	&lt;param-value&gt;false&lt;/param-value&gt; &lt;/context-param&gt; &lt;context-param&gt;
	&lt;param-name&gt;org.apache.myfaces.PRETTY_HTML&lt;/param-name&gt;
	&lt;param-value&gt;true&lt;/param-value&gt; &lt;/context-param&gt; &lt;context-param&gt;
	&lt;param-name&gt;org.apache.myfaces.AUTO_SCROLL&lt;/param-name&gt;
	&lt;param-value&gt;true&lt;/param-value&gt; &lt;/context-param&gt; /*Extensions Filter
	do MyFaces*/ &lt;filter&gt;
	&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt; &lt;filter-class&gt;
	org.apache.myfaces.webapp.filter.ExtensionsFilter &lt;/filter-class&gt;
	&lt;init-param&gt; &lt;description&gt; Set the size limit for uploaded files.
	Format: 10 - 10 bytes 10k - 10 KB 10m - 10 MB 1g - 1 GB &lt;/description&gt;
	&lt;param-name&gt;maxFileSize&lt;/param-name&gt; &lt;param-value&gt;20m&lt;/param-value&gt;
	&lt;/init-param&gt; &lt;/filter&gt; /*extension mapping for adding &lt;script/&gt;,
	&lt;link/&gt;, and other resource tags to JSF-pages*/ &lt;filter-mapping&gt;
	&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt; /*servlet-name must
	match the name of your javax.faces.webapp.FacesServlet entry*/
	&lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;/filter-mapping&gt;

	/*extension mapping for serving page-independent resources
	(javascript, stylesheets, images, etc.)*/ &lt;filter-mapping&gt;
	&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
	&lt;url-pattern&gt;/faces/myFacesExtensionResource/*&lt;/url-pattern&gt;
	&lt;/filter-mapping&gt;
--&gt;
&lt;!-- Fim do MyFaces --&gt;

</web-app>
[/color]

[/color]