p:fileUpload não funciona

Olá amigos

estou com um problema que o p:fileUpload não está executando o fileUploadListener.

web.xml

<welcome-file-list>
	<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

<session-config>
			<session-timeout>300</session-timeout>
</session-config>

<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>*.xhtml</url-pattern>
</servlet-mapping>

  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>

<context-param>
	<param-name>primefaces.THEME</param-name>
	<param-value>none</param-value>
</context-param>
<context-param>
	<param-name>javax.faces.PROJECT_STAGE</param-name>
	<param-value>Development</param-value>
</context-param>

<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>	
primefaces.UPLOADER commons Resource Servlet org.primefaces.resource.ResourceServlet PrimeFaces FileUpload Filter org.primefaces.webapp.filter.FileUploadFilter PrimeFaces FileUpload Filter Faces Servlet
<!-- <error-page>
	<exception-type>javax.faces.application.ViewExpiredException</exception-type>
	<location>/pages/error/error.xhtml</location>
</error-page>
<error-page>
	<error-code>404</error-code>
	<location>/pages/error/404.xhtml</location>
</error-page>
<error-page>
	<error-code>403</error-code>
	<location>/pages/error/403.xhtml</location>
</error-page>

–>

BeanManager
javax.enterprise.inject.spi.BeanManager

<resource-ref>
	<description>PostgreSQL DataSource</description>
	<res-ref-name>jdbc/CiisdsDB</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
</resource-ref>

cadastro.xhtml

			<h:form enctype="multipart/form-data">
		 
			<h:panelGrid border="2" columns="1" cellspacing="5" >

				<p:graphicImage id="foto" 
						value="#{credenciamentoBean.imagem}"
						rendered="#{credenciamentoBean.imagem != null}"
						cache="false" width="100px" height="100px" />

				</h:panelGrid>			 
		 
		    <p:fileUpload value="#{credenciamentoBean.file}" mode="simple" skinSimple="true" />
		 
		    <p:commandButton value="Carregar" ajax="false" actionListener="#{credenciamentoBean.upload}" />
		</h:form>

Bean.java

	public void loadFile(FileUploadEvent event) throws IOException {
	if (imagem != null){
		imagem.getStream().reset();
	}			
	
	imagem = new  DefaultStreamedContent(new ByteArrayInputStream(event.getFile().getContents()));
		
	imagem_temp = new  DefaultStreamedContent(new ByteArrayInputStream(event.getFile().getContents()));
	setTmpFoto(imagem_temp.getStream());
    this.setTempFoto(toByteArray(getTmpFoto()));
    
}	

se eu colocar com :commandbutton ele executa o bean mas o file fica null.

    public void upload() {
    if(this.file != null) {
    	
    }
} 

pom.xml

 <dependencies>
	<!-- JSF Mojarra -->
	<dependency>
		<groupId>com.sun.faces</groupId>
		<artifactId>jsf-api</artifactId>
		<version>2.2.14</version>
	</dependency>

	<dependency>
		<groupId>com.sun.faces</groupId>
		<artifactId>jsf-impl</artifactId>
		<version>2.2.14</version>
	</dependency>

	<!-- Servlet API -->
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>javax.servlet-api</artifactId>
		<version>3.0.1</version>
	</dependency>

	<!-- Primefaces -->
	<dependency>
	    <groupId>org.primefaces</groupId>
	    <artifactId>primefaces</artifactId>
	    <version>6.1</version>
	</dependency>

	<dependency>
		<groupId>org.primefaces.themes</groupId>
		<artifactId>all-themes</artifactId>
		<version>1.0.10</version>
	</dependency>

	<!-- Weld CDI 1.2 -->
	<dependency>
		<groupId>org.jboss.weld.servlet</groupId>
		<artifactId>weld-servlet</artifactId>
		<version>2.4.3.Final</version>
		<scope>runtime</scope>
	</dependency>

	<dependency>
		<groupId>javax.enterprise</groupId>
		<artifactId>cdi-api</artifactId>
		<version>1.2</version>
		<scope>provided</scope>
	</dependency>

	<dependency>
		<groupId>javax</groupId>
		<artifactId>javaee-web-api</artifactId>
		<version>7.0</version>
		<scope>provided</scope>
	</dependency>
	
	<!-- Ini4J -->
	<dependency>
		<groupId>org.ini4j</groupId>
		<artifactId>ini4j</artifactId>
		<version>0.5.4</version>
	</dependency>

	<!-- Jersey -->
	<dependency>
		<groupId>com.sun.jersey</groupId>
		<artifactId>jersey-client</artifactId>
		<version>1.19.4</version>
	</dependency>

	<dependency>
		<groupId>javax.ws.rs</groupId>
		<artifactId>jsr311-api</artifactId>
		<version>1.1.1</version>
	</dependency>		
	
	<!-- Gson -->
	<dependency>
		<groupId>com.google.code.gson</groupId>
		<artifactId>gson</artifactId>
		<version>2.8.1</version>
	</dependency>

	<!-- Hibernate 5.x -->
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-core</artifactId>
		<version>5.2.10.Final</version>
	</dependency>

	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-validator</artifactId>
		<version>5.4.1.Final</version>
	</dependency>

	<dependency>
		<groupId>org.hibernate.javax.persistence</groupId>
		<artifactId>hibernate-jpa-2.1-api</artifactId>
		<version>1.0.0.Final</version>
	</dependency>

	
	<!-- PostgreSQL 9.x -->
	<dependency>
	    <groupId>org.postgresql</groupId>
	    <artifactId>postgresql</artifactId>
	    <version>42.1.4</version>
	</dependency>		

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports</artifactId>
    <version>6.3.0</version>
</dependency>

	<!-- Apache Commons -->
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-lang3</artifactId>
		<version>3.5</version>
	</dependency>
	
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>3.8.1</version>
		<scope>test</scope>
	</dependency>
	
	<dependency>
	  <groupId>com.google.guava</groupId>
	  <artifactId>guava</artifactId>
	  <version>23.0</version>
	</dependency>
	
  	<dependency>
  		<groupId>commons-fileupload</groupId>
  		<artifactId>commons-fileupload</artifactId>
  		<version>1.3</version>
  	</dependency>	
  	
  	<dependency>
		<groupId>commons-io</groupId>
		<artifactId>commons-io</artifactId>
		<version>2.4</version>
	</dependency>
  		
	<dependency>
	    <groupId>org.jdom</groupId>
	    <artifactId>jdom</artifactId>
	    <version>2.0.2</version>
	</dependency>

Algué poderia ajudar?

Silvio Guedes

<filter>
    <filter-name>primeUploadFilter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
    <init-param>
        <param-name>thresholdSize</param-name>
        <param-value>51200</param-value>
    </init-param>
</filter>

Coloca isso no web.xml, vê se vai!

O tamanho tu muda ai depois…

Olá ardenghe

no p:fileupload tem um fileUploadListener que não está sendo executado, mas se eu colocar um <p:commandButton value=“Carregar” ajax=“false” actionListener="#{credenciamentoBean.upload()}" o método upload é executado mas a variável file não é setada fica nula.

 <p:fileUpload value="#{credenciamentoBean.file}" mode="simple" skinSimple="true" />

 public void upload() {
if(this.file != null) {
	
}

Estou usando o PrimeFaces 6.1 e Boostrap 3.3.7

muito obrigado

Silvio Guedes