Rich:fileUpload só funciona com arquivos com menso de 1,5m, uso Tomcat 6 richfaces 3.3.3

1 resposta
edsonbollis

Fala pessoal, sou inciante no fórum, porém tenho um problema que esta me atormentando faz um bom tempo.
Faço upload normal com o rich:fileUpload para imagens até um mega, porém quando tento fazer para arquivos maiores que isso dá a seguite stack:

Jul 13, 2012 12:09:19 AM com.sun.faces.lifecycle.Phase handleBeforePhase
Advertência: org.ajax4jsf.request.MultipartRequest.parseRequest(MultipartRequest.java:388)
org.richfaces.component.FileUploadPhaselistener.beforePhase(FileUploadPhaselistener.java:63)
com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:214)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:96)
com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:104)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:367)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Unknown Source)

Já tentei muita coisa mas nada deu certo......

meu código é este

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>comGayaMapasWebFront</display-name>
  
  <display-name>JavaServerFaces</display-name>
  
  <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value></param-value>
    </context-param>
  
  	<context-param> 
		<param-name>contextConfigLocation</param-name> 
			<param-value>/WEB-INF/applicationContext.xml</param-value> 
	</context-param> 
	
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
  	</listener>
    <listener>
		 <listener-class>
			org.springframework.web.context.request.RequestContextListener
		 </listener-class>
    </listener> 
  
  <context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.xhtml</param-value>
 </context-param>
  <context-param>
  <param-name>facelets.REFRESH_PERIOD</param-name>
  <param-value>0</param-value> 
 </context-param>
 <context-param>
  <param-name>facelets.DEVELOPMENT</param-name>
  <param-value>true</param-value>
 </context-param>
 <context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>server</param-value>
 </context-param>
 <context-param>
  <param-name>org.richfaces.SKIN</param-name>
  <param-value>blueSky</param-value>
 </context-param>
 
 <filter>
  <display-name>Ajax4jsf Filter</display-name>
  <filter-name>ajax4jsf</filter-name>
  <filter-class>org.ajax4jsf.Filter</filter-class>
  <init-param>
  <param-name>createTempFiles</param-name>
  <param-value>true</param-value>
  </init-param>
 <init-param>
      <param-name>maxRequestSize</param-name>
      <param-value>0</param-value>
  </init-param>
  <init-param>    
    <param-name>forceparser</param-name>    
    <param-value>false</param-value>    
  </init-param>  
 </filter>
 
 <filter-mapping>
  <filter-name>ajax4jsf</filter-name>
  <servlet-name>Faces Servlet</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
 </filter-mapping>
 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>0</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.jsf</url-pattern>
 </servlet-mapping>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>

</web-app>
package com.gaya.mapas.web.front.ui;

import java.awt.Image;
import java.awt.image.RenderedImage;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;

import org.richfaces.event.UploadEvent;
import org.richfaces.model.UploadItem;

import com.gaya.mapas.pojos.Mapas;
import com.gaya.mapas.web.front.utilits.MediaData;

public class MapasUI extends UserBean {
	private static final long serialVersionUID = 1L;
	private Mapas mapas;
	private byte[] arq;
	private File file;
	private String mapasList = "mapasList.xhtml";
	private String mapasVisualizacao = "mapasVisualizacao.xhtml";
	private String outPut = mapasList;

	public void uploadArquivoListner(UploadEvent evento) {
		try {
			UploadItem item = evento.getUploadItem();
			//arq = item.getData();
			file = item.getFile();
			mapas.setEndereco(item.getFileName());
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public String getOutPut() {
		return outPut;
	}

	public void setOutPut(String outPut) {
		this.outPut = outPut;
	}

	public Mapas getMapas() {
		return mapas;
	};

	public void setMapas(Mapas mapas) {
		this.mapas = mapas;
	};

	public Integer getId() {
		return mapas.getId();
	}

	public void setId(Integer id) {
		mapas.setId(id);
	}

	public Integer getTamanhoHorizontal() {
		return mapas.getTamanhoHorizontal();
	}

	public void setTamanhoHorizontal(Integer tamanhoHorizontal) {
		mapas.setTamanhoHorizontal(tamanhoHorizontal);
	}

	public Integer getTamanhoVertical() {
		return mapas.getTamanhoVertical();
	}

	public void setTamanhoVertical(Integer tamanhoVertical) {
		mapas.setTamanhoVertical(tamanhoVertical);
	}

	public String getNome() {
		return mapas.getNome();
	}

	public void setNome(String nome) {
		mapas.setNome(nome);
	}

	public Integer getEscala() {
		return mapas.getEscala();
	}

	public void setEscala(Integer escala) {
		mapas.setEscala(escala);
	}

	public String getDescricao() {
		return mapas.getDescricao();
	}

	public void setDescricao(String descricao) {
		mapas.setDescricao(descricao);
	}

	public String getLatitudeInicial() {
		return mapas.getLatitudeInicial();
	}

	public void setLatitudeInicial(String latitudeInicial) {
		mapas.setLatitudeInicial(latitudeInicial);
	}

	public String getLongitudeInicial() {
		return mapas.getLongitudeInicial();
	}

	public void setLongitudeInicial(String longitudeInicial) {
		mapas.setLongitudeInicial(longitudeInicial);
	}

	public String getLatitudeFinal() {
		return mapas.getLatitudeFinal();
	}

	public void setLatitudeFinal(String latitudeFinal) {
		mapas.setLatitudeFinal(latitudeFinal);
	}

	public String getLongitudeFinal() {
		return mapas.getLongitudeFinal();
	}

	public void setLongitudeFinal(String longitudeFinal) {
		mapas.setLongitudeFinal(longitudeFinal);
	}

	public Integer getMargemNorte() {
		return mapas.getMargemNorte();
	}

	public void setMargemNorte(Integer margemNorte) {
		mapas.setMargemNorte(margemNorte);
	}

	public Integer getMargemSul() {
		return mapas.getMargemSul();
	}

	public void setMargemSul(Integer margemSul) {
		mapas.setMargemSul(margemSul);
	}

	public Integer getMargenLest() {
		return mapas.getMargenLest();
	}

	public void setMargenLest(Integer margenLest) {
		mapas.setMargenLest(margenLest);
	}

	public Integer getMargemOest() {
		return mapas.getMargemOest();
	}

	public void setMargemOest(Integer margemOest) {
		mapas.setMargemOest(margemOest);
	}

	public String getEndereco() {
		return mapas.getEndereco();
	}

	public void setEndereco(String endereco) {
		mapas.setEndereco(endereco);
	}

	public void find() {
		outPut = mapasList;
	}

	public void save() {
	}

	public void delete() {

	}

	public void visualizar() {
		try {
			if (file!= null && mapas != null && mapas.getEndereco() != null
			//if (arq!= null && mapas != null && mapas.getEndereco() != null
					&& !mapas.getEndereco().equals("")) {
				outPut = mapasVisualizacao;
			} else {
				throw new Exception("Sem mapa inserido!!");
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void paint(OutputStream out, Object data) {
		try {
			if (data != null && data instanceof MediaData && mapas != null
					&& mapas.getEndereco() != null
					&& !mapas.getEndereco().equals("")) {
				MediaData paintData = (MediaData) data;
				
				
				InputStream is = new BufferedInputStream(
				        new FileInputStream(file));
				Image image = ImageIO.read(is);
				ImageIcon img = new ImageIcon(image);

				//ImageIcon img = new ImageIcon(arq);
				
				
				paintData.setHeight(img.getIconHeight());
				paintData.setWidth(img.getIconWidth());
				
				String s = mapas.getEndereco().substring(mapas.getEndereco().lastIndexOf(".") + 1, mapas.getEndereco().length());
				ImageIO.write((RenderedImage) image,s,out);
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}
<!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:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:a4j="http://richfaces.org/a4j">

<f:view>
	<f:loadBundle basename="messages" var="msg" />
	<rich:panel>
		<f:facet name="header">
			<h:outputLabel value="#{msg.header_inserir_mapas}" />
		</f:facet>
		<h:panelGrid columns="2" columnClasses="upload,busca" width="100%">
			<h:panelGrid columns="1" width="100%">
				<h:form id="fomrMapas">
					<h:panelGrid width="100%" columns="2" border="1" rules="all"
						columnClasses="coluna1,coluna2">
						<f:facet name="header">
							<h:outputText value="#{msg.header_insira_valores_mapas}" />
						</f:facet>

						<h:outputLabel value="#{msg.label_id}" />
						<h:inputText value="#{mapasUI.id}" />
						<h:outputLabel value="#{msg.label_tamanho_horizontal}" />
						<h:inputText value="#{mapasUI.tamanhoHorizontal}" />
						<h:outputLabel value="#{msg.label_tamanho_vertical}" />
						<h:inputText value="#{mapasUI.tamanhoVertical}" />
						<h:outputLabel value="#{msg.label_nome}" />
						<h:inputText value="#{mapasUI.nome}" />
						<h:outputLabel value="#{msg.label_escala}" />
						<h:inputText value="#{mapasUI.escala}" />
						<h:outputLabel value="#{msg.label_descricao}" />
						<h:inputText value="#{mapasUI.descricao}" />
						<h:outputLabel value="#{msg.label_latitude_inicial}" />
						<h:inputText value="#{mapasUI.latitudeInicial}" />
						<h:outputLabel value="#{msg.label_longitude_inicial}" />
						<h:inputText value="#{mapasUI.longitudeInicial}" />
						<h:outputLabel value="#{msg.label_latitude_final}" />
						<h:inputText value="#{mapasUI.latitudeFinal}" />
						<h:outputLabel value="#{msg.label_longitude_final}" />
						<h:inputText value="#{mapasUI.longitudeFinal}" />
						<h:outputLabel value="#{msg.label_margem_norte}" />
						<h:inputText value="#{mapasUI.margemNorte}" />
						<h:outputLabel value="#{msg.label_margem_sul}" />
						<h:inputText value="#{mapasUI.margemSul}" />
						<h:outputLabel value="#{msg.label_margen_lest}" />
						<h:inputText value="#{mapasUI.margenLest}" />
						<h:outputLabel value="#{msg.label_margem_oest}" />
						<h:inputText value="#{mapasUI.margemOest}" />

					</h:panelGrid>
					<rich:fileUpload
						fileUploadListener="#{mapasUI.uploadArquivoListner}"
						acceptedTypes="jpeg,jpg,gif,png,bmp" maxFilesQuantity="1"
						listHeight="40px" listWidth="100%"
						ontyperejected="alert('#{msg.erroArquivo}');" />

					<h:panelGrid columns="4" width="100%">
						<a4j:commandButton value="#{msg.visualizar}"
							action="#{mapasUI.visualizar}" reRender="outPut"
							ajaxSingle="true" />
						<a4j:commandButton value="#{msg.buscar}" action="#{mapasUI.find}"
							reRender="outPut" ajaxSingle="true" />
						<a4j:commandButton value="#{msg.limpar}" />
						<a4j:commandButton value="#{msg.salvar}" />
					</h:panelGrid>
				</h:form>
			</h:panelGrid>

			<a4j:outputPanel id="painel-conteudo-mapas" width="100%">
				<a4j:include viewId="#{mapasUI.outPut}" id="outPut" />
			</a4j:outputPanel>


		</h:panelGrid>
	</rich:panel>
</f:view>
</html>

Estou a muito tempo nisso, por favor me ajudem :oops:

1 Resposta

edsonbollis

UP!
Alguém me ajuda?

Criado 12 de julho de 2012
Ultima resposta 17 de jul. de 2012
Respostas 1
Participantes 1