Re:problema upload arquivo primefaces jsf

Não é possível fazer upload de arquivos no modo simples. Se quer mesmo usar ajax, vai ter que usar o modo avançado do componente.

Aqui o próprio líder do time do Primefaces diz isso: http://forum.primefaces.org/viewtopic.php?f=3&t=16260

Gente estou com um problema. Estou tentando exibir a extensão do arquivo no método salvar do meu Bean só que toda vez lança “nullpointer”.

Eu resolvi adicionar o atributo ajax=“false” no botão que invoca o método e não lançou erro nenhum exibindo o nome do arquivo.

EU gostaria de fazer essa execução com ajax=“true” só que toda vez lança erro, tem como resolver isso de alguma forma ?

Não posso deixar o ajax do tipo false em função das validações em ajax feita no formulário.

<h:form id="formCad"  prependId="false" enctype="multipart/form-data">
		
			<p:dialog widgetVar="dialogCadLegal" showEffect="clip" showHeader="false" hideEffect="fold" height="500" width="950" modal="true" resizable="false">  
	    	  
	    	   <p:panel header="Formulário de Cadastro">
						<br />
						<center>
				    		<p:panelGrid columns="2" style="text-align:left;">
									<h:outputLabel  value="Fundamento Legal : " for="clegal"/>
									<h:selectOneMenu id="clegal" value="#{fundamentoMB.fundamentoLegal.tipoFundamentoLegal.codTipoFundamentoLegal}" required="true" requiredMessage="Informe o tipo de fundamento legal.">  
							            <f:selectItem itemLabel="--- SELECIONE O FUNDAMENTO LEGAL ---&nbsp;&nbsp;" itemValue="0" />  
							            <f:selectItems value="#{fundamentoMB.listaTipoFundamento}"  var="fund" itemLabel="#{fund.desTipoFundamentoLegal}" itemValue="#{fund.codTipoFundamentoLegal}" />
			        				</h:selectOneMenu>
									<h:outputLabel value="Num. Fundamento Legal :" for="numero" />
									<p:inputText id="numero" value="#{fundamentoMB.fundamentoLegal.nuFundamentoLegal}" size="38" maxlength="50" required="true" requiredMessage="Informe o número do fundamento legal." />
									<h:outputLabel value="Num. Diário Oficial :" for="numOficial" />
									<p:inputText id="numOficial" value="#{fundamentoMB.fundamentoLegal.nuDiarioOficial}" size="38" maxlength="50" required="true" requiredMessage="Informe o número do diário oficial." />
									<h:outputLabel value="Data Fundamentação Legal : " for="dtFund" />
									<p:calendar value="#{fundamentoMB.fundamentoLegal.dtFundamentoLegal}" size="38" locale="pt_BR" pattern="dd/MM/yyyy" showButtonPanel="true" navigator="true" id="dtFund" required="true" requiredMessage="Informe a data da fundamentação legal." />
									<h:outputLabel value="Anexar Arquivo : " for="arq" /> 
									<p:fileUpload id="arq" value="#{fundamentoMB.file}" mode="simple"/>  
									<h:outputLabel value="Descrição : " for="des" />
									<p:inputTextarea id="des" value="#{fundamentoMB.fundamentoLegal.desFundamentoLegal}" cols="50" rows="12" maxlength="210" required="true" requiredMessage="Informe a descrição." />
			        		 		<f:facet name="footer">  
        								<center>
	  								<p:commandButton  update=":mensagemPrincipal" action="#{fundamentoMB.salvar}" oncomplete="if(args.sucesso == true) { dialogCadLegal.hide();}"  icon="icon-check" value="Cadastrar" />  
										</center>  
    								</f:facet> 
							</p:panelGrid>
						</center>
						<br />
				</p:panel>
				
			</p:dialog>  
public void salvar() {
		
		System.out.println("Type : " + file.getContentType() );	
		
		FacesContext context = FacesContext.getCurrentInstance();
		context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
				"Cadastro realizado com sucesso.", ""));

		RequestContext request = RequestContext.getCurrentInstance();
		request.addCallbackParam("sucesso", true);

	}

<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>  
            <url-pattern>*.jsf</url-pattern>  
        </filter-mapping>