Duvida Geração de mensagem de confirmação JavaScript

6 respostas
F

Boa Noite Pessoal, eu estou desenvolvendo uma tela onde eu tenho um botão que gera um arquivo.

Quando eu clico nesse botão, ele verifica se existe informação nula e caso exista, não gero o arquivo.

Eu gostaria de fazer via java script ou de alguma outra forma , que quando encontrar informacoes nulas o sistema pergunte se desejo gerar assim mesmo, ecaso a resposta seja afirmativa, continue o fluxo e gere o arquivo.

Alguem tem alguma ideia ?

Segue como esta meu button e como eu estou controlando a geração do arquivo atualmente :

<p:commandButton value="Gerar" update="formGerarDoc,msggerardocs" 
                     action="#{gerarDocumentoController.gerarDoc}" image="ui-icon ui-icon-check"   
                   		 	oncomplete="onEditComplete(xhr, status, args)"   style="font-size: 12px" immediate="true" ajax="false">
                   		 	<p:ajax  listener="#{gerarDocumentoController.changeValue}" update="formGerarDoc,msggerardocs"/>
         </p:commandButton>
public void gerarDoc() {
		final StringBuffer buffer = new StringBuffer();
		FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "SGD", "Informações Nulas");
		boolean loggedIn = false;
		boolean tagsNulas = false;

		if (idTemplate != null && idTemplate!=0){
			loggedIn = true;
		}
		
		for (InformacoesFaltantes faltantes : listaTagsTemplate) {
			loggedIn = true;
			if (faltantes.getInformacaoTag() == null || faltantes.getInformacaoTag().isEmpty()) {
				loggedIn = false;
				tagsNulas = true;
				//msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "SGD", "Informações Nulas");
				break;
			}
		}
		
// Aqui eu queria perguntar para o usuario se deseja gerar mesmo com informaçoes nulas
/*		if (tagsNulas){
                    // if (confirmação do usuario for positiva){
			loggedIn = true;
                      }
		}
*/
		if (loggedIn){
			
			Gravar();
			msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Documento Gerado", null);
		}
		
		FacesContext.getCurrentInstance().addMessage(null,msg);
	}

6 Respostas

jeroqueiroz

Você esta usando JSP ou utiliza algo mais em sua APP?

F

JSP + primefaces 3 RC + Majorra 2.0 …

Eu nao conheço direito tudo que estou utilizando … Acho que é isso.

E

usa o confirmDialog

F

Fmz ateh dá para para usar o confirmDialog, mas como eu faço para esse confirm dialog aparecer apenas quando não encontrar informação ?

a ideia eh o botão “gerar” validar se tem informação nula … se tiver, abrir esse dialog perguntando se deseja gerar assim mesmo …

Eu to empacado para condicionar a abertura desse dialog …

E

vc coloca um rendered nele de acordo com sua lógica, e coloca ele dentro de um objeto primefaces (por exemplo, p:outputPanel). Quando clicar no botão que vai verificar se existe ou não, você dá um update no pai desse p:confirmDialog.

F

Mas como eu vou chamar o confirmation ? por mais que eu condicione ele em um rendered, eu preciso de um evento para dar show no dialog … eu tava pensando em asar java script … , mas ta dando um erro … alguem sabe onde eu to errando ? (segue o codigo e o erro que ta dando)

xhtml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui"
	template="template.xhtml">

	<ui:define name="conteudo">
	<ui:include src="/html/pages/dialog/usuarios.xhtml" />
	<h:form id="formGerarDoc">
		<p:panel id="geradocDLG" widgetVar="dialoggeradoc" >

			<f:facet name="header">
				<h:outputText value="Gerar Documento" style="font-size: 14px" />
			</f:facet>
			
			<table id="display" cellpadding="4" style="margin:0 auto;" width="90%">
				<tr>
					<td>
					<h:outputText value="Template:" />
					<p:spacer width="70" height="10" /> 
					<h:selectOneMenu effect="fade" id="selecttempate"  label="template" style="size: 10px"
						value="#{gerarDocumentoController.idTemplate}">
						<f:selectItem itemLabel="Selecione um Template" itemValue="" />
						<f:selectItems value="#{gerarDocumentoController.templatesItem}" />
						<p:ajax  listener="#{gerarDocumentoController.changeTemplate}" update="idtagsFaltantesDT" />
					</h:selectOneMenu>
					</td>
					<td>
					<h:outputText value="Informações:" />
			        <p:spacer width="46" height="10" />
					<h:selectOneMenu effect="fade" id="informacao"  label="template" style="size: 10px" 
						value="#{gerarDocumentoController.idInformacao}">
						<f:selectItem itemLabel="Selecione uma Informação" itemValue="" />
						<f:selectItems value="#{gerarDocumentoController.informacoesItem}"/>
						<p:ajax  listener="#{gerarDocumentoController.changeInformacao}"/>
					</h:selectOneMenu>

					<p:spacer width="10" height="10" /> 
					<p:commandButton  image="ui-icon-plusthick" value="Adicionar"  update="idinformacoesDG,idtagsFaltantesDT" 
						style="font-size: 12px" actionListener="#{gerarDocumentoController.addInformacao}" immediate="true" />
					</td>
				</tr>
				<tr>
					<td colspan="2">
					<p:dataGrid id="idinformacoesDG" var="informacoesDG" value="#{gerarDocumentoController.listaInformacoes}" 
							columns="2" rows="4" paginator="true" effect="true" paginatorPosition="bottom"
							paginatorTemplate="{PreviousPageLink} {CurrentPageReport} {NextPageLink}">

							<p:column>
								<p:panel id="gpnl" style="text-align:center; font-size:10px;width: 300px">
										<h:outputText value="#{informacoesDG.nome}" />
										<div class="pesquisa">
											<p:commandButton oncomplete="confirmationRemovetemplate.show()" image="ui-icon ui-icon-close" title="Remover Informação" 
												style="width: 20px;height:20px;" immediate="true" >
												<f:setPropertyActionListener value="#{informacoesDG}" target="#{gerarDocumentoController.selectedInformacoes}" />
												<p:ajax  listener="#{gerarDocumentoController.changeValue}" update="idtagsFaltantesDT"/>
											</p:commandButton> 
										</div>
								</p:panel>
							</p:column>
					</p:dataGrid>
					</td>
				</tr>
				<tr>
					<td colspan="2">
						<p:dataTable   var="tagsFaltantesDT" value="#{gerarDocumentoController.listaTagsTemplate}" id="idtagsFaltantesDT"
							rows="4" paginator="true" effect="true" paginatorPosition="bottom"
							paginatorTemplate="{PreviousPageLink} {CurrentPageReport} {NextPageLink}"
							emptyMessage="Nenhuma Tag encontrada">  
  
					        <p:column headerText="Tags" style="width:300px">  
					            <p:cellEditor>  
					                <f:facet name="output">  
					                    <h:outputText value="#{tagsFaltantesDT.nomeTag}" />  
					                </f:facet>  
					                <f:facet name="input">  
					                    <h:outputText value="#{tagsFaltantesDT.nomeTag}" />  
					                </f:facet>  
					            </p:cellEditor>  
					        </p:column>  
					  
					        <p:column headerText="Informaçoes" style="width:300px">  
					            <p:cellEditor>  
					                <f:facet name="output">  
					                    <h:outputText value="#{tagsFaltantesDT.informacaoTag}" />  
					                </f:facet>  
					                <f:facet name="input">  
					                    <p:inputText value="#{tagsFaltantesDT.informacaoTag}" style="width:100%" label="informacaoTag" maxlength="1200">
					                    	<p:ajax  listener="#{gerarDocumentoController.changeValue}" />
					                    </p:inputText>  
					                </f:facet>  
					            </p:cellEditor>  
					        </p:column>  
					  
					        <p:column  style="width:10px" >  
					            <p:rowEditor />  
					        </p:column>  
				    	</p:dataTable>  				
					</td>
				</tr>
				<tr>
					<td>
					<p:outputPanel  autoUpdate="true">
[b]						<p:commandButton value="Gerar" update="msggerardocs" actionListener="#{gerarDocumentoController.gerarDoc}" image="ui-icon ui-icon-check"   
	             		 	oncomplete="handlegerardocRequest(xhr, status, args)" style="font-size: 12px" immediate="true" >
	             		 	<p:ajax  listener="#{gerarDocumentoController.changeValue}" update="msggerardocs"/>[/b]
	             		 </p:commandButton>  
							
							<p:commandButton value="Cancelar"  type="button" image="ui-icon ui-icon-close"
			                 	style="font-size: 12px" onclick="dialoggeradoc.hide()"/> 
					</p:outputPanel>
					</td>
					<td>
						<p:outputPanel autoUpdate="true">
							<div style="font-size: 12px; text-align: center">
								<p:messages id="msggerardocs" showDetail="true" autoUpdate="true" showSummary="false" />
							</div>
						</p:outputPanel>
					</td>
				</tr>
			</table>
			
		</p:panel>
		
<!-- =======Dialog Remoção============================================================= -->
		<p:confirmDialog message="Confirma Remoção?" 
			showEffect="explode" hideEffect="explode" header="SGD" 
			severity="alert" widgetVar="confirmationRemovetemplate">

			<p:commandButton value="Sim" update="idinformacoesDG,idtagsFaltantesDT" actionListener="#{gerarDocumentoController.commandremoveinf}" oncomplete="confirmationRemovetemplate.hide()"  immediate="true"/>
			<p:commandButton value="Não" onclick="confirmationRemovetemplate.hide()" type="button" />
		</p:confirmDialog>
<!-- ============================================================================== -->

<!-- =======Dialog Gerar Documento================================================= -->
    <p:confirmDialog message="Existe informações nulas. Deseja gerar assim mesmo?"  
                header="SGD" severity="alert" widgetVar="confirmationGerardoc">  
                  
        <p:commandButton value="Gerar" update="msggerardocs" oncomplete="confirmationRemovetemplate.hide()"  
                    actionListener="#{gerarDocumentoController.gerarDocConfirmado}" />  
        <p:commandButton value="Não Gerar" onclick="confirmationRemovetemplate.hide()" type="button" />   
    </p:confirmDialog>
<!-- ============================================================================== -->     
	</h:form>
	
	<script type="text/javascript">  
    function handlegerardocRequest(xhr, status, args) {  
        if(args.validationFailed || !args.loggedIn) {  
            //jQuery('#dialog').effect("shake", { times:3 }, 100);
            // aqui teria que chamar meu confirmation para continuar a geração do arquivo
            confirmationGerardoc.show();
            
        } else {
        	alert('Sucesso');
            //Aqui nao precisa de nada porque o medodo ja gerou o documento
        }  
    }  
</script> 
</ui:define>
</ui:composition>

classe que gera documento

package br.com.dsc.controller;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.primefaces.context.RequestContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;

import br.com.dsc.entity.*;

@Controller
@Qualifier("gerarDocumentoController")
public class GerarDocumentoController {

	private final Log logger = LogFactory.getLog(getClass());

	@Autowired
	private IUsuarioService iUsuarioService;

	@Autowired
	private ITemplatesService iTemplatesService;

	@Autowired
	private IInformacaoService iInformacaoService;

	@Autowired
	private IParagrafosService iParagrafosService;

	@Autowired
	private ITagsService iTagsService;

	// Variaveis de controle
	private Boolean openTela;
	private Templates selectedTemplates;
	private List<Informacoes> listaInformacoes;
	private Informacoes selectedInformacoes;
	private Integer idTemplate;
	private Integer idInformacao;
	private List<InformacoesFaltantes> listaTagsTemplate = new ArrayList<InformacoesFaltantes>();
	private Usuarios usuariosCorrente = new Usuarios();
	private String path2;

	public GerarDocumentoController() {
		setSelectedTemplates(new Templates());
		setListaInformacoes(new ArrayList<Informacoes>());
		setSelectedInformacoes(new Informacoes());
	}

	/* ==================Funcionalidades  Omitidas================================== */
	public void gerarDoc(ActionEvent actionEvent) {  
		RequestContext context = RequestContext.getCurrentInstance();
        FacesMessage msg = null;  
        boolean loggedIn = false;  

		if (idTemplate != null && idTemplate!=0){
			//loggedIn = true;
			
			for (InformacoesFaltantes faltantes : listaTagsTemplate) {
				loggedIn = true;
				if (faltantes.getInformacaoTag() == null || faltantes.getInformacaoTag().isEmpty()) {
					loggedIn = false;
					msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "SGD", "Informações Nulas");
					break;
				}
			}
			
			if (loggedIn){
				gerarDocConfirmado();
				msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Documento Gerado", null);
			}
		}else{
			msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "SGD", "Nenhum Template Selecionado");
		}

        FacesContext.getCurrentInstance().addMessage(null, msg);  
        context.addCallbackParam("loggedIn", loggedIn);  
    } 

	
	public void gerarDocConfirmado(){
		final StringBuffer buffer = new StringBuffer();
		//FacesMessage msg = null;
		//boolean loggedIn = false;

			if (selectedTemplates.getParagrafosTemplates() !=null && !selectedTemplates.getParagrafosTemplates().isEmpty()){
				Collections.sort(selectedTemplates.getParagrafosTemplates(), new Comparator<ParagrafosTemplate>() {
					public int compare(ParagrafosTemplate o1, ParagrafosTemplate o2) {
						return o1.getSequencia() < o2.getSequencia() ? -1 : (o1.getSequencia() > o2.getSequencia() ? +1 : 0);
					}
				});
			}

			// Aqui fica meu metodo
			for (ParagrafosTemplate paragrafosTemplate : selectedTemplates.getParagrafosTemplates()) {

				if (paragrafosTemplate.getNumeracao() != null
						&& !paragrafosTemplate.getNumeracao().isEmpty()) {
					buffer.append(paragrafosTemplate.getNumeracao().trim()).append(" ");
				}

				if (paragrafosTemplate.getParagrafos().getTitulo() != null
						&& !paragrafosTemplate.getParagrafos().getTitulo().isEmpty()) {
					buffer.append(paragrafosTemplate.getParagrafos().getTitulo().trim()).append("\n");
				}
				
				if (paragrafosTemplate.getParagrafos().getCorpo() != null
						&& !paragrafosTemplate.getParagrafos().getCorpo().isEmpty()) {
					buffer.append(paragrafosTemplate.getParagrafos().getCorpo()).append("\n");
				}
			}

			String texto = buffer.toString();
			for (InformacoesFaltantes faltantes : listaTagsTemplate) {
				texto = texto.replace("#" + faltantes.getNomeTag() + "#",faltantes.getInformacaoTag());
			}

			System.out.println(texto);

			// fim do metodo
			
			zerarController();
			Gravar(texto);
			//msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Documento Gerado", null);
		
		//FacesContext.getCurrentInstance().addMessage(null,msg);
	}


	public void Gravar(String texto){  
/*      String conteudo = texto;
        String path = null;*/
        
        String local = ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()).getRealPath("/")+"arquivos";
        File diretorio = new File(local);
        if(!diretorio.exists()){
        	diretorio.mkdirs();
        }
        System.out.println("diretorio: "+ diretorio);
        try{
       // o true significa q o arquivo será constante
        	String filename = "newDoc"+getUsuariosCorrente().getId()+".rtf";   			
			File arquivo = new File(diretorio, filename);
			FileOutputStream fos = new FileOutputStream(arquivo);
			fos.write(texto.getBytes());
			fos.close();

   			FacesContext facesContext = FacesContext.getCurrentInstance();
   			ExternalContext context = facesContext.getExternalContext();
   			File file = new File(arquivo.getAbsolutePath());

   			HttpServletResponse response = (HttpServletResponse) context.getResponse();
   			response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\""); // header
   			response.setContentLength((int) file.length()); // O tamanho do
   			// arquivo
   			response.setContentType("rtf"); // e o tipo

   			FileInputStream in = new FileInputStream(file);
   			OutputStream out = response.getOutputStream();

   			byte[] buf = new byte[(int) file.length()];
   			int count;
   			while ((count = in.read(buf)) >= 0) {
   				out.write(buf, 0, count);
   			}
   			in.close();
   			out.flush();
   			out.close();
   			facesContext.responseComplete();
   			file.delete();
   		} catch (IOException ex) {
   			//System.out.println("Não foi possível salvar o arquivo Erro");
   			System.out.println("Nao foi possivel salvar o arquivo Erro");
   			ex.printStackTrace();
   		}
        
        //return path;
     }

	/* =====================Gets e Sets==================================== */
}

Erro :

05/01/2012 17:05:25 javax.faces.event.MethodExpressionActionListener processAction
GRAVE: 'java.lang.NullPointerException' recebido ao invocar escuta de ação '#{gerarDocumentoController.gerarDoc}' para o componente 'j_idt85'
05/01/2012 17:05:25 javax.faces.event.MethodExpressionActionListener processAction
GRAVE: java.lang.NullPointerException
	at br.com.dsc.controller.GerarDocumentoController.gerarDoc(GerarDocumentoController.java:325)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:148)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
	at javax.faces.component.UICommand.broadcast(UICommand.java:300)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	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.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	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:175)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	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:279)
	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(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)

05/01/2012 17:05:25 com.sun.faces.context.ExceptionHandlerImpl log
GRAVE: JSF1073: javax.faces.event.AbortProcessingException obtido durante o processamento de APPLY_REQUEST_VALUES 2: UIComponent-ClientId=formGerarDoc:j_idt85, Message=/html/pages/gerardoc.xhtml @108,128 actionListener="#{gerarDocumentoController.gerarDoc}": java.lang.NullPointerException
05/01/2012 17:05:25 com.sun.faces.context.ExceptionHandlerImpl log
GRAVE: /html/pages/gerardoc.xhtml @108,128 actionListener="#{gerarDocumentoController.gerarDoc}": java.lang.NullPointerException
javax.faces.event.AbortProcessingException: /html/pages/gerardoc.xhtml @108,128 actionListener="#{gerarDocumentoController.gerarDoc}": java.lang.NullPointerException
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:182)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
	at javax.faces.component.UICommand.broadcast(UICommand.java:300)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	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.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	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:175)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	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:279)
	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(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
	at br.com.dsc.controller.GerarDocumentoController.gerarDoc(GerarDocumentoController.java:325)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:148)
	... 56 more
05/01/2012 17:05:25 br.com.dsc.service.bean.TemplatesServiceBean pesquisar
INFO: Início pesquisar Templates.
05/01/2012 17:05:25 br.com.dsc.persistence.hibernate.TemplatesRepositoryHibernate findAllSpecifiedTemplates
INFO:  Size -> 1
05/01/2012 17:05:25 br.com.dsc.service.bean.TemplatesServiceBean pesquisar
INFO: Início pesquisar Templates.
05/01/2012 17:05:25 br.com.dsc.persistence.hibernate.TemplatesRepositoryHibernate findAllSpecifiedTemplates
INFO:  Size -> 1
05/01/2012 17:05:25 br.com.dsc.service.bean.InformacoesServiceBean pesquisar

esse erro ta ocorrendo porque o comando “RequestContext context = RequestContext.getCurrentInstance();” ta retornando null … Se eu trocar o botão para ajax true, esse comando retorna valor, contudo não gera documento …

alguem sabe o que ta ocorrendo ?

Criado 4 de janeiro de 2012
Ultima resposta 5 de jan. de 2012
Respostas 6
Participantes 3