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”>
<meta http-equiv="Content-Type" content="text/html; charset-ISO-8859-1">
<h:form id="formularioAcaoTerceiroPasso">
<h:inputHidden value="#{acaoTerceiroPassoBean.operacao}" />
<t:saveState value="#{acaoTerceiroPassoBean}"></t:saveState>
<h:outputText value="1º Passo: Inserir Documentos "
styleClass="tituloSecao" />
<h:outputText value="" styleClass="tituloSecao" />
<h:outputText value="" styleClass="tituloSecao" />
<br />
<h:outputText value="Número do Processo:" styleClass="tituloSecao" />
<h:outputLabel value="#{acaoTerceiroPassoBean.numeroAcao}"
styleClass="tituloSecao" />
<h:panelGrid columns="3" columnClasses="colEsquerda, colDireita">
<h:form enctype="multipart/form-data">
<t:inputFileUpload id="arquivo" value="#{uploadBean.arquivo}"
storage="file" required="true" />
<h:commandButton action="#{acaoTerceiroPassoBean.mostrarArquivo}"
value="Enviar" />
<h:outputText value="Nome: " />
<h:outputText value="#{acaoTerceiroPassoBean.nomeArquivo}" />
</h:form>
</h:panelGrid>
</h:form>
</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 "AcaoPrimeiro";
}
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”>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>
/WEB-INF/faces/faces-navigation.xml
,/WEB-INF/faces/faces-beans.xml
,/WEB-INF/faces/faces-config.xml
,/WEB-INF/faces/faces-converters.xml
</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<!-- Tiles Servlet -->
<servlet>
<servlet-name>Tiles Servlet</servlet-name>
<servlet-class>org.apache.struts.tiles.TilesServlet</servlet-class>
<init-param>
<param-name>definitions-config</param-name>
<param-value>/WEB-INF/tiles/tiles-defs.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!--
Filtro para verificar se o usuario está autenticado <filter>
<filter-name>VerificaAutenticacaoFilter</filter-name> <filter-class>
br.jus.tjrn.previne.web.filter.VerificaAutenticacaoFilter
</filter-class> </filter> <filter-mapping>
<filter-name>VerificaAutenticacaoFilter</filter-name>
<url-pattern>*.jsf</url-pattern> </filter-mapping> <filter-mapping>
<filter-name>VerificaAutenticacaoFilter</filter-name>
<url-pattern>*.jsp</url-pattern> </filter-mapping>
-->
<!--
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
-->
<context-param>
<param-name>servidoresActiveDirectory</param-name>
<!--
para ser utilizado quando a aplicação estiver EM DESENVOLVIMENTO
-->
<param-value>
10.100.7.120 # @intrajus.tjrn # DC=intrajus,DC=tjrn
</param-value>
<!-- para ser utilizado quando a aplicação estiver EM PRODUÇÃO -->
<!--
<param-value> ldap.tjrn.gov.br:1389 # @intrajus.tjrn #
DC=intrajus,DC=tjrn </param-value>
-->
</context-param>
<!-- Session Timeout (minutes) -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<!-- Welcome files -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!-- Página para exibição dos erros -->
<error-page>
<error-code>500</error-code>
<location>/errorPage.jsf</location>
</error-page>
<!-- RichFaces -->
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>DEFAULT</param-value>
</context-param>
<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>10485760</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>
<!-- Fim do RichFaces -->
<!-- Extensions Filter -->
<filter>
<filter-name>extensionsFilter</filter-name>
<filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class>
<init-param>
<param-name>uploadMaxFileSize</param-name>
<param-value>100m</param-value>
<!--
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:
<param-value>100m</param-value> 1MB = 1024KB 1GB = 1024MB
-->
</init-param>
<init-param>
<param-name>uploadThresholdSize</param-name>
<param-value>100k</param-value>
<!--
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
-->
</init-param>
</filter>
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
<!-- MyFaces -->
<!--
<context-param>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value> </context-param> <context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value> </context-param> <context-param>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value> </context-param> <context-param>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>true</param-value> </context-param> /*Extensions Filter
do MyFaces*/ <filter>
<filter-name>MyFacesExtensionsFilter</filter-name> <filter-class>
org.apache.myfaces.webapp.filter.ExtensionsFilter </filter-class>
<init-param> <description> Set the size limit for uploaded files.
Format: 10 - 10 bytes 10k - 10 KB 10m - 10 MB 1g - 1 GB </description>
<param-name>maxFileSize</param-name> <param-value>20m</param-value>
</init-param> </filter> /*extension mapping for adding <script/>,
<link/>, and other resource tags to JSF-pages*/ <filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name> /*servlet-name must
match the name of your javax.faces.webapp.FacesServlet entry*/
<servlet-name>Faces Servlet</servlet-name> </filter-mapping>
/*extension mapping for serving page-independent resources
(javascript, stylesheets, images, etc.)*/ <filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>
-->
<!-- Fim do MyFaces -->
</web-app>
[/color]
[/color]