[Resolvido] Primefaces. Erro upload de arquivo

Comecei a desenvolver importação de arquivo seguindo esse tutorial:

http://quebrandoparadigmas.com/?p=168

Abaixo as classes que estou utilizando:

Classe FileUploadController

[code]package bean;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;

import model.Estrato;
import model.HibernateUtil;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;

@ManagedBean
@SessionScoped
public class FileUploadController {

private String nomeArquivoSelecionado;  
private StreamedContent imagem;  

public StreamedContent getImagem() {  
	return imagem;  
}  

public void setImagem(StreamedContent imagem) {  
	this.imagem = imagem;  
}  

public String getNomeArquivoSelecionado() {  
	return nomeArquivoSelecionado;  
}  

public void setNomeArquivoSelecionado(String nomeArquivoSelecionado) {  
	this.nomeArquivoSelecionado = nomeArquivoSelecionado;  
}  

public void fileUploadAction(FileUploadEvent event) {  
	try {  
		setNomeArquivoSelecionado(event.getFile().getFileName());  
		imagem = new DefaultStreamedContent(event.getFile().getInputstream());  
	} catch (IOException ex) {  
		Logger.getLogger(FileUploadController.class.getName()).log(Level.SEVERE, null, ex);  
	}  
}  

} [/code]

Pagina index.xhtml (Coloquei apenas a parte que adicionei do componente de importação para simplificar):

<p:layoutUnit position="center">
	
	<h:form>  
	
		<p:fileUpload auto="false" label="Selecionar..." allowTypes="*.jpg;*.png;*.gif;" multiple="false" description="Imagem" update="idimagem" fileUploadListener="#{fileUploadController.fileUploadAction}" /> <br/>  

		<p:graphicImage id="idimagem" value="#{FileUploadController.imagem}" />    
  	
	</h:form>  
    
</p:layoutUnit>   

Web XML configurado:

<?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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>CVLCLASfinal</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <context-param>  
    <param-name>primefaces.THEME</param-name>  
    <param-value>flick</param-value>  
  </context-param>  
  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
  <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>  
</web-app>

Tipo, aparece o botao certinho… eu seleciono o arquivo para importar no caso um JPG… e clico em Upload… é quando dá o seguinte erro (e a imagem não é apresentada na interface, como deveria):

03/10/2011 14:45:03 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;C:/Program Files/Java/jre6/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\WIDCOMM\Bluetooth Software\;D:\Eclipse;;.
03/10/2011 14:45:03 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:CVLCLAS' did not find a matching property.
03/10/2011 14:45:03 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Contato' did not find a matching property.
03/10/2011 14:45:03 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:CVLCLASfinal' did not find a matching property.
03/10/2011 14:45:04 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8081"]
03/10/2011 14:45:04 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8010"]
03/10/2011 14:45:04 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1888 ms
03/10/2011 14:45:04 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
03/10/2011 14:45:04 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.21
03/10/2011 14:45:06 org.apache.catalina.core.StandardContext listenerStart
GRAVE: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
	at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
	at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
	at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
	at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
03/10/2011 14:45:06 org.apache.catalina.core.StandardContext listenerStart
GRAVE: Skipped installing application listeners due to previous error(s)
03/10/2011 14:45:06 org.apache.catalina.core.StandardContext startInternal
GRAVE: Error listenerStart
03/10/2011 14:45:06 org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/CVLCLAS] startup failed due to previous errors
03/10/2011 14:45:11 org.apache.catalina.core.StandardContext addApplicationListener
INFO: The listener "com.sun.faces.config.ConfigureListener" is already configured for this context. The duplicate definition has been ignored.
03/10/2011 14:45:11 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Inicializando Mojarra 2.1.2 (FCS 20110613) para o contexto '/CVLCLASfinal'
03/10/2011 14:45:11 com.sun.faces.spi.InjectionProviderFactory createInstance
INFO: JSF1048: Anotações PostConstruct/PreDestroy presentes.  Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas.
03/10/2011 14:45:14 org.apache.catalina.core.StandardContext addApplicationListener
INFO: The listener "com.sun.faces.config.ConfigureListener" is already configured for this context. The duplicate definition has been ignored.
03/10/2011 14:45:14 com.sun.faces.config.ConfigureListener contextInitialized
INFO: Inicializando Mojarra 2.1.2 (FCS 20110613) para o contexto '/Contato'
03/10/2011 14:45:14 com.sun.faces.spi.InjectionProviderFactory createInstance
INFO: JSF1048: Anotações PostConstruct/PreDestroy presentes.  Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas.
03/10/2011 14:45:14 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
03/10/2011 14:45:14 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
03/10/2011 14:45:14 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
03/10/2011 14:45:14 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
03/10/2011 14:45:14 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@70c242')
03/10/2011 14:45:14 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory host-manager
03/10/2011 14:45:15 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
03/10/2011 14:45:15 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
03/10/2011 14:45:15 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8081"]
03/10/2011 14:45:15 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8010"]
03/10/2011 14:45:15 org.apache.catalina.startup.Catalina start
INFO: Server startup in 10463 ms
03/10/2011 14:51:48 com.sun.faces.renderkit.ClientSideStateHelper doGetState
GRAVE: invalid distance code
java.util.zip.ZipException: invalid distance code
	at java.util.zip.InflaterInputStream.read(Unknown Source)
	at java.util.zip.GZIPInputStream.read(Unknown Source)
	at java.io.ObjectInputStream$PeekInputStream.read(Unknown Source)
	at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
	at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
	at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
	at java.io.ObjectInputStream.<init>(Unknown Source)
	at com.sun.faces.renderkit.ApplicationObjectInputStream.<init>(ApplicationObjectInputStream.java:81)
	at com.sun.faces.spi.SerializationProviderFactory$JavaSerializationProvider.createObjectInputStream(SerializationProviderFactory.java:215)
	at com.sun.faces.renderkit.ClientSideStateHelper.doGetState(ClientSideStateHelper.java:234)
	at com.sun.faces.renderkit.ClientSideStateHelper.getState(ClientSideStateHelper.java:198)
	at com.sun.faces.renderkit.ResponseStateManagerImpl.getState(ResponseStateManagerImpl.java:100)
	at com.sun.faces.application.view.StateManagementStrategyImpl.restoreView(StateManagementStrategyImpl.java:236)
	at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:188)
	at com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:123)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:452)
	at com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:148)
	at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:192)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:77)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

bem… consegui descobrir… era so alterar o web.xml de “client” para “server”

   <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>