FileUpload PrimeFaces

Bom dia estou tentando implementar um FileUpload do PrimeFaces mais não funciona de jeito nenhum o objeto UploadedFile sempre fica null e nem sequer chama o método set, ao verificar o log aparece o seguinte WARNING: WELD-001529 An InjectionTarget implementation is created for a class org.primefaces.context.PrimePartialViewContextFactory which does not have any appropriate constructor. Já adicionei os jars commons-fileupload-1.3.jar e commons-io-2.4.jar e também já configurei o web.xml mais não funciona de jeito nenhum.

//FileUpload <h:form enctype="multpart/form-data"> <tr> <td><b>Anexar arquivo</b></td> <td><p:fileUpload value="#{fileUploadController.file}" mode="simple"/></td> </tr> <tr> <tr></tr> <td><p:commandButton id="anexar" value="Anexar" ajax="false" action="#{fileUploadController.send()}"/></td> </tr> </h:form> <p:growl id="growl" showDetail="true"/> </h:body>

[code]//ManagedBean
@Named(value = “fileUploadController”)
@SessionScoped
public class FileUploadController implements Serializable {

private UploadedFile file;
private String diretorioDestino = "c:\\temp\\";

public FileUploadController() {
}

public UploadedFile getFile() {
    return file;
}

public void setFile(UploadedFile file) {
    this.file = file;
}

public void send() throws IOException {
    FacesContext fc = FacesContext.getCurrentInstance();
    if (getFile() == null) {
        fc.addMessage(null, new FacesMessage("Erro", "Escolha um arquivo"));
    } else {
        upload(getFile().getFileName(), getFile().getInputstream());
        fc.addMessage(null, new FacesMessage("Sucesso", "arquivo enviado"));
    }
}

public void upload(String fileName, InputStream in) {
    try {
        OutputStream out = new FileOutputStream(new File(diretorioDestino + fileName));
        int reader = 0;
        byte[] bytes = new byte[(int) getFile().getSize()];
        try {
            while ((reader = in.read(bytes)) != -1) {
                out.write(bytes, 0, reader);
            }
            in.close();
            out.flush();
            out.close();
        } catch (IOException ex) {
            Logger.getLogger(FileUploadController.class.getName()).log(Level.SEVERE, null, ex);
        }
    } catch (FileNotFoundException ex) {
        Logger.getLogger(FileUploadController.class.getName()).log(Level.SEVERE, null, ex);
    }
}[/code]

[code]//web.xml

<?xml version="1.0" encoding="UTF-8"?> javax.faces.PROJECT_STAGE Development Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.faces 30 index.faces primefaces.THEME south-street Primefaces FileUpload Filter org.primefaces.webapp.filter.FileUploadFilter Primefaces FileUpload Filter Faces Servlet [/code]

Amigo já pensou em usar actionListener ao invés do action? Acredito que irá funcionar

Caso tenha maiores duvidas consulte o portal do primeFaces

http://www.primefaces.org/showcase/ui/fileUploadSimple.jsf

Bom dia já vi sim o ShowCase do PrimeFaces e já tentei também com o actionListener, porém ao acionar o botão do FileUpload o evento não é disparado e não consigo nem pegar o event.getFile() e nem setar o arquivo no UploadedFile que sempre fica null. Mesmo se eu colocar um valor que não existe na propriedade value ou fileUploadListener não da erro pq o método não esta sendo chamado veja abaixo código teste que fiz utilizando o actionListener:

public void fileUp(FileUploadEvent event) { FacesContext fc = FacesContext.getCurrentInstance(); fc.addMessage(null, new FacesMessage("Mensagem", "Arquivo escolhido "+ event.getFile().getFileName())); }

<h:form enctype="multpart/form-data"> <tr> <td><b>Anexar arquivo</b></td> <td><p:fileUpload styleClass="campo" fileUploadListener="#{fileUploadController.fileUp(event)}" label="Escolher Arquivo" mode="advanced" auto="true"/></td> </tr> <tr> <tr></tr> <td><p:commandButton id="anexar" value="Anexar" ajax="false" action="#{fileUploadController.send()}"/></td> </tr> </h:form> <p:growl id="growl" showDetail="true"/>

cara qual versão do JSF voce esta usando?
Dependendo qual for isso aqui não existe send ‘()’
certo

action="#{fileUploadController.send}"

Estou usando a Versão 2.2 e já fiz das duas maneiras e só não funciona o FileUpload.

outro erro

<h:form enctype="multpart/form-data">  

o certo é multipart/form-data logo

<h:form enctype="multipart/form-data">  

Eu faria assim caso nao funcione verifique mapeamentos do projeto

<h:form enctype="multipart/form-data">  
            <tr>  
                <td><b>Anexar arquivo</b></td>  
                <td><p:fileUpload value="#{fileUploadController.file}" mode="simple"/></td>  
            </tr>  
            <tr>  
                <tr></tr>  
                <td><p:commandButton id="anexar" value="Anexar" ajax="false" actionListener="#{fileUploadController.send}"/></td>  
            </tr>  
        </h:form>  
        <p:growl id="growl" showDetail="true"/>  
    </h:body>  
public class FileUploadController {  
  
    private UploadedFile file;  
  
    public UploadedFile getFile() {  
        return file;  
    }  
  
    public void setFile(UploadedFile file) {  
        this.file = file;  
    }  
  
    public void send(){  
        if(file != null) {  
            FacesMessage msg = new FacesMessage("Succesful", file.getFileName() + " is uploaded.");  
            FacesContext.getCurrentInstance().addMessage(null, msg);  
        }  
    }  
}  

Agora estou recebendo o erro abaixo:

FATAL: JSF1073: javax.faces.FacesException obtido durante o processamento de APPLY_REQUEST_VALUES 2: UIComponent-ClientId=, Message=null FATAL: javax.faces.FacesException at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:86) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) at java.lang.Thread.run(Thread.java:724) Caused by: java.lang.NullPointerException at org.primefaces.component.fileupload.FileUploadRenderer.decodeSimple(FileUploadRenderer.java:54) at org.primefaces.component.fileupload.FileUploadRenderer.decode(FileUploadRenderer.java:45) at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:836) at javax.faces.component.UIInput.decode(UIInput.java:771) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1228) at javax.faces.component.UIInput.processDecodes(UIInput.java:676) at javax.faces.component.UIForm.processDecodes(UIForm.java:225) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1223) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1223) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) ... 35 more

[quote=josimarsis]Agora estou recebendo o erro abaixo:

FATAL: JSF1073: javax.faces.FacesException obtido durante o processamento de APPLY_REQUEST_VALUES 2: UIComponent-ClientId=, Message=null FATAL: javax.faces.FacesException at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:86) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) at java.lang.Thread.run(Thread.java:724) Caused by: java.lang.NullPointerException at org.primefaces.component.fileupload.FileUploadRenderer.decodeSimple(FileUploadRenderer.java:54) at org.primefaces.component.fileupload.FileUploadRenderer.decode(FileUploadRenderer.java:45) at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:836) at javax.faces.component.UIInput.decode(UIInput.java:771) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1228) at javax.faces.component.UIInput.processDecodes(UIInput.java:676) at javax.faces.component.UIForm.processDecodes(UIForm.java:225) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1223) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1223) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) ... 35 more[/quote]

Agora meu irmão e botar pra debugar e ver o que ta nullo. Seu erro agora é mais tranquilo ‘nullPointExeception’

Ta muito estranho isso aqui coloquei para debbugar e esta acontecendo o seguinte, escolho o arquivo e aciono o commandButton para fazer post dai ao envés da propriedade value="#{fileUploadController.file}" do FileUpload chamar o setFile do meu managedBean ele ta chamando o getFile e por isso o UploadedFile continua null.

Olá pessoal já não sei mais o que fazer, o FileUpload do PrimeFaces não funciona, já tentei de tudo e nada, mesmo reproduzindo o exemplo do ShowCase do primeFaces não funciona e estou recebendo a exceção abaixo. As bibliotecas commons-io-2.4.jar e commons-fileupload-1.3.jar estão adicionadas tbm já acrescentei no web.xml o código recomendado em diversos tutoriais que vi na net. Estou utilizando Netbeans 7.3.1 + Glassfish 4.0 + Primefaces 3.5.

[code]

<?xml version="1.0" encoding="UTF-8"?> javax.faces.PROJECT_STAGE Development Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.faces 30 index.faces // PrimeFaces FileUpload Filter org.primefaces.webapp.filter.FileUploadFilter PrimeFaces FileUpload Filter Faces Servlet // [/code]

//LOG do GlassFish + Exceção lançada ao executar o fileUpload WARNING: Class 'javax.ejb.PostActivate' not found, interception based on it is not enabled WARNING: Class 'javax.ejb.PrePassivate' not found, interception based on it is not enabled INFO: Inicializando Mojarra 2.2.0 ( 20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930) para o contexto '/upload' WARNING: WELD-001529 An InjectionTarget implementation is created for a class org.primefaces.context.PrimePartialViewContextFactory which does not have any appropriate constructor. INFO: Running on PrimeFaces 3.5 INFO: Loading application [upload] at [/upload] INFO: Loading application upload done in 15.334 ms INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: Inicializando Mojarra 2.2.0 ( 20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930) para o contexto '/helpdesk' WARNING: WELD-001529 An InjectionTarget implementation is created for a class org.primefaces.context.PrimePartialViewContextFactory which does not have any appropriate constructor. INFO: Running on PrimeFaces 3.2 INFO: Loading application [helpdesk] at [/helpdesk] INFO: Loading application helpdesk done in 5.694 ms INFO: GlassFish Server Open Source Edition 4.0 (89) startup time : Felix (10.999ms), startup services(24.019ms), total(35.018ms) INFO: Initiating Jersey application, version Jersey: 2.0 2013-05-03 14:50:15... INFO: Grizzly Framework 2.3.1 started in: 9ms - bound to [/0.0.0.0:7.676] INFO: Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishImpl@25959a as OSGi service registration: org.apache.felix.framework.ServiceRegistrationImpl@162deb1. INFO: JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://TI01:8686/jndi/rmi://TI01:8686/jmxrmi INFO: Created HTTP listener http-listener-1 on host/port 0.0.0.0:8080 INFO: Grizzly Framework 2.3.1 started in: 16ms - bound to [/0.0.0.0:8.080] INFO: Created HTTP listener http-listener-2 on host/port 0.0.0.0:8181 INFO: Grizzly Framework 2.3.1 started in: 18ms - bound to [/0.0.0.0:8.181] INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: Inicializando Mojarra 2.2.0 ( 20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930) para o contexto '/upload' WARNING: WELD-001529 An InjectionTarget implementation is created for a class org.primefaces.context.PrimePartialViewContextFactory which does not have any appropriate constructor. INFO: Running on PrimeFaces 3.5 INFO: Loading application [upload] at [/upload] INFO: upload foi implantado com sucesso em 3.875 milissegundos. FATAL: JSF1073: javax.faces.FacesException obtido durante o processamento de APPLY_REQUEST_VALUES 2: UIComponent-ClientId=, Message=null FATAL: javax.faces.FacesException at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:86) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) at java.lang.Thread.run(Thread.java:724) Caused by: java.lang.NullPointerException at org.primefaces.component.fileupload.FileUploadRenderer.decodeSimple(FileUploadRenderer.java:56) at org.primefaces.component.fileupload.FileUploadRenderer.decode(FileUploadRenderer.java:47) at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:836) at javax.faces.component.UIInput.decode(UIInput.java:771) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1228) at javax.faces.component.UIInput.processDecodes(UIInput.java:676) at javax.faces.component.UIForm.processDecodes(UIForm.java:225) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1223) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1223) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) ... 35 more

Olá Galera descobri que o NullPointerException que esta ocorrendo ao executar o commandButton do FileUpload esta ocorrendo por causa de um bug no GlassFish 4.0, vejam o log abaixo. Tentei com os servidores GlassFish 3.1, GlassFish 3.1.2.2 e JBoss AS 7.1.1, porém os nos ManagedBeans que estão utilizando CDI aparece a seguinte mensagem: [quote]O Artefato CDI foi localizado, mais não há arquivo beans.xml[/quote] e o Apache Tomcat 7.0.34 nem reconhece as anotações do CDI.

INFO: Grizzly Framework 2.3.1 started in: 7ms - bound to [/0.0.0.0:3.700] INFO: Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry SEVERE: Application previously deployed is not at its original location any more: file:/D:/Java/Projetos/Netbeans/upload/build/web/ SEVERE: Application previously deployed is not at its original location any more: file:/D:/Java/Projetos/Netbeans/testeup/build/web/ INFO: this.makeModuleFor(org.glassfish.main.web.glue, null) returned OSGiModuleImpl:: Bundle = [org.glassfish.main.web.glue [350]], State = [READY] INFO: this.makeModuleFor(org.glassfish.web.javax.servlet.jsp, null) returned OSGiModuleImpl:: Bundle = [org.glassfish.web.javax.servlet.jsp [209]], State = [READY] INFO: visiting unvisited references INFO: SEC1002: Security Manager is OFF. INFO: SEC1010: Entering Security Startup Service INFO: SEC1143: Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper. INFO: SEC1011: Security Service(s) Started Successfully INFO: Created HTTP listener http-listener-1 on host/port 0.0.0.0:8080 INFO: Created HTTP listener http-listener-2 on host/port 0.0.0.0:8181 INFO: Created HTTP listener admin-listener on host/port 0.0.0.0:4848 INFO: Created virtual server server INFO: Created virtual server __asadmin INFO: Setting JAAS app name glassfish-web INFO: Virtual server server loaded default web module INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: visiting unvisited references INFO: WELD-000900 2.0.0 (SP1) INFO: HV000001: Hibernate Validator 5.0.0.Final //***************************CAUSA DO NullPointerException********************************* WARNING: Class 'javax.ejb.PostActivate' not found, interception based on it is not enabled WARNING: Class 'javax.ejb.PrePassivate' not found, interception based on it is not enabled INFO: Inicializando Mojarra 2.2.0 ( 20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930) para o contexto '/helpdesk' WARNING: WELD-001529 An InjectionTarget implementation is created for a class org.primefaces.context.PrimePartialViewContextFactory which does not have any appropriate constructor. INFO: Running on PrimeFaces 3.2 INFO: Loading application [helpdesk] at [/helpdesk] INFO: Loading application helpdesk done in 19.488 ms SEVERE: Application previously deployed is not at its original location any more: file:/D:/Java/Projetos/Netbeans/helpdesk-old/build/web/ //***************************FIM CAUSA DO NullPointerException********************************* INFO: GlassFish Server Open Source Edition 4.0 (89) startup time : Felix (10.956ms), startup services(22.317ms), total(33.273ms) INFO: Created HTTP listener http-listener-1 on host/port 0.0.0.0:8080
Alguém tem alguma solução mesmo que não seja com o GlassFish?

segue abaixo um exemplo:

package br.com.comprev.sisprev.bean;

import java.io.File;
import java.io.FileOutputStream;
import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;

import org.primefaces.event.FileUploadEvent;

@ManagedBean(name = "fileUploadMB")
@ViewScoped
public class FileUploadMB implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void fileUploadAction(FileUploadEvent event) {
		
		try {
			
			ExternalContext externalContext = FacesContext.getCurrentInstance()
					.getExternalContext();
			HttpServletResponse response = (HttpServletResponse) externalContext
					.getResponse();

			FacesContext aFacesContext = FacesContext.getCurrentInstance();
			ServletContext context = (ServletContext) aFacesContext
					.getExternalContext().getContext();

			String realPath = context.getRealPath("/");
			//String realPath = "C://";

			
			// Aqui cria o diretorio caso não exista
			File file = new File(realPath + "/fotos/");
			file.mkdirs();

			byte[] arquivo = event.getFile().getContents();
			String caminho = realPath + "/fotos/"
					+ event.getFile().getFileName();

			// esse trecho grava o arquivo no diretório
			FileOutputStream fos = new FileOutputStream(caminho);
			fos.write(arquivo);
			fos.close();

		} catch (Exception ex) {
			System.out.println("Erro no upload de imagem" + ex);
		}
		
		
	}

}
				<p:fileUpload id="upload"
					fileUploadListener="#{anexoArquivoBean.fileUploadAction}" auto="true" />

No seu web.xml, o parametro javax.faces.STATE_SAVING_METHOD está para client? Se estiver, tente como server.

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