Transformar variavel do Datatable em JSON

Pessoal tenho essa Datatable e gostaria de saber se tem como de um jeito fácil pegar a variável dela e transformar em JSON, pois eu preciso redimensionar ela em outra tela, então pensei de um jeito fácil, deixar ela guardada em JSON daí só pego o JSON e trago tudo na tela de novo.

   <p:dataTable id="dataTableAprovacaoFuncionario" widgetVar="listaAprovacaoFuncionario" var="aprovacaoFuncionario" value="#{dtAddRowView.listaAprovacaoFuncionario}" editable="true" style="margin-bottom:20px">
	   <f:facet name="header">
		   Funcionários
	   </f:facet>
 
	   <p:ajax event="rowEdit" listener="#{dtAddRowView.onRowEdit}" update=":form:msgs"/>
	   <p:ajax event="rowEditCancel" listener="#{dtAddRowView.onRowCancel}" update=":form:msgs"/>
 
	   <p:column headerText="Matricula">
		   <p:cellEditor>
			   <f:facet name="output"><h:outputText value="#{aprovacaoFuncionario.matricula}" /></f:facet>
			   <f:facet name="input">
			   <p:inputText id="matricula" value="#{aprovacaoFuncionario.matricula}" style="width:100%" label="Matricula">
					<p:ajax event="blur" listener="#{dtAddRowView.selectRowAprovacaoFuncionario(aprovacaoFuncionario)}" update=":form:dataTableAprovacaoFuncionario, :form:msgs"/>
				</p:inputText>
			   </f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column headerText="Nome">
		   <p:cellEditor>
			   <f:facet name="output"><h:outputText value="#{aprovacaoFuncionario.nome}" /></f:facet>
			   <f:facet name="input"><p:inputText value="#{aprovacaoFuncionario.nome}" style="width:100%" label="Nome" disabled="true"/></f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column headerText="Turno">
		   <p:cellEditor>
			   <f:facet name="output"><h:outputText value="#{aprovacaoFuncionario.turno}" /></f:facet>
			   <f:facet name="input"><p:inputText value="#{aprovacaoFuncionario.turno}" style="width:100%" label="Turno" disabled="true"/></f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column headerText="Transporte">
		   <p:cellEditor>
			   <f:facet name="output"><h:selectBooleanCheckbox value="#{aprovacaoFuncionario.transporte}" /></f:facet>
			   <f:facet name="input"><p:selectBooleanCheckbox value="#{aprovacaoFuncionario.transporte}" style="width:100%" label="Transporte"/></f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column style="width:32px">
		   <p:rowEditor />
	   </p:column>
   </p:dataTable>

Transformar em JSON eu não sei, mas você pode dar ctrl+c e ctrl+v na outra página, ou defini-la como atributo do seu bean e referencia-la na outra página, mas de qualquer forma você já a lista de objetos que ela utiliza, não é só usar a mesma lista?

Com isso você quer dizer deixa-la responsiva ou o que?
Qual a necessidade de redimensiona-la em outra página? Pq não faz tudo nessa?

É que tipo estou trabalhando com Workflow um assunto meio complexo que começei a trabalhar agora, a ideia é , eu tenho essa tela beleza, depois preciso passar pra uma outra que é um copia dessa com a diferença somente de ser somente leitura e um botão aprovar e reprovar, e eu preciso redimensionar essa Datatable pro usuario ver, como eu poderia fazer isso? Lembrando que vai ser outro usuário e com outra sessão que vai verificar essa tela. Vou postar meu ManagerBean hoje como está.

@ManagedBean(name="dtAddRowView")
@ViewScoped
public class AddRowView implements Serializable {
 
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@PersistenceContext
	private EntityManager em;
	
	private List<AprovacaoFuncionario> listaAprovacaoFuncionario;
	private AprovacaoFuncionario aprovacaoFuncionario;
 
	@ManagedProperty("#{carService}")
	private CarService service;
 
	@PostConstruct
	public void init() {
		listaAprovacaoFuncionario = service.createCars(10);
		aprovacaoFuncionario = new AprovacaoFuncionario();
	}
 
	public void onRowEdit(RowEditEvent event) {
		FacesMessage msg = new FacesMessage("Funcionário Editado", ((AprovacaoFuncionario) event.getObject()).getMatricula());
		FacesContext.getCurrentInstance().addMessage(null, msg);
	}
 
	public void onRowCancel(RowEditEvent event) {
		FacesMessage msg = new FacesMessage("Edição Cancelada", ((AprovacaoFuncionario) event.getObject()).getMatricula());
		FacesContext.getCurrentInstance().addMessage(null, msg);
	}
 
	public void onAddNew() {
		// Add one new car to the table:
		AprovacaoFuncionario aprovacaoFuncionario = service.createCars(1).get(0);
		listaAprovacaoFuncionario.add(aprovacaoFuncionario);
		FacesMessage msg = new FacesMessage("Registro Adicionado", aprovacaoFuncionario.getMatricula());
		FacesContext.getCurrentInstance().addMessage(null, msg);
	}

	public void selectRowAprovacaoFuncionario(AprovacaoFuncionario aprovacaoFuncionario) {
		
		Fun fun = null;
		
		try {
			fun = (Fun) em.createQuery("SELECT f FROM Fun f WHERE ATRREGISTRO = '" + aprovacaoFuncionario.getMatricula() + "'", Fun.class).getSingleResult();
		} catch (NonUniqueResultException e) {
			FacesMessage msg = new FacesMessage("Encontrado mais de um Funcionário com a mesma Matrícula.", aprovacaoFuncionario.getMatricula());
			FacesContext.getCurrentInstance().addMessage(null, msg);
			
			return;
		} catch (NoResultException e) {
			FacesMessage msg = new FacesMessage("Não encontrando o Funcionário informado.", aprovacaoFuncionario.getMatricula());
			FacesContext.getCurrentInstance().addMessage(null, msg);
			
			return;
		}
		
		em.clear();
		Pes pes = (Pes) em.createQuery("SELECT p FROM Pes p WHERE ATRIDPESSOA = " + fun.getIdPessoa(), Pes.class).getSingleResult();
		em.clear();
		FunTur funTur = (FunTur) em.createQuery("SELECT f FROM FunTur f WHERE ATRIDFUNCIONARIO = " + fun.getAtrIdFuncionario(), FunTur.class).getSingleResult();
		em.clear();
		Tur tur = (Tur) em.createQuery("SELECT t FROM Tur t WHERE ATRIDTURNO = " + funTur.getTur().getAtrIdTurno(), Tur.class).getSingleResult();
		
		this.aprovacaoFuncionario = aprovacaoFuncionario;
		this.aprovacaoFuncionario.setNome(pes.getAtrNomePessoa());
		this.aprovacaoFuncionario.setTurno(tur.getAtrNomeTurno());
		
		updateRow();
	}
	
	public void updateRow () {
		aprovacaoFuncionario = new AprovacaoFuncionario();
	}

	public List<AprovacaoFuncionario> getListaAprovacaoFuncionario() {
		return listaAprovacaoFuncionario;
	}

	public void setListaAprovacaoFuncionario(List<AprovacaoFuncionario> listaAprovacaoFuncionario) {
		this.listaAprovacaoFuncionario = listaAprovacaoFuncionario;
	}

	public AprovacaoFuncionario getAprovacaoFuncionario() {
		return aprovacaoFuncionario;
	}

	public void setAprovacaoFuncionario(AprovacaoFuncionario aprovacaoFuncionario) {
		this.aprovacaoFuncionario = aprovacaoFuncionario;
	}

	public CarService getService() {
		return service;
	}

	public void setService(CarService service) {
		this.service = service;
	}
}

Outra coisa que eu não posso gravar essas informações em nenhuma Tabela, por isso fico mais difícil, teria que só dar um jeito passar esses dados para outra tela, e depois sim na outra tela quando eu aprovar ou reprovar que vou poder gravar no Banco de Dados essas informações.

Eu fiz um pequeno teste e somente mudei minha tela para @ApplicationScoped mas aí aparentemente sempre aparece a mesma lista para todo mundo o que não é o certo, não sei o que fazer para arrumar essa situação para as listas não se conflitarem por @SessionScoped acho que não vai arrumar meu problema também por causa da questão dos usuários que comentei, mas também vou testar aqui.

Huuum, vamos ver se eu entendi direito.

Serão duas sessões e dois usuários?

O Usuario1 vai editar as colunas da tabela e depois o Usuario2 vai aprovar ou reprovar os dados da tabela?

Eu pensei em 3 soluções:

1)Você pode colocar os dados no Map da aplicação (não necessariamente um Bean com escopo de sessão), a chave seria uma String + Identificador Único e o valor seria o que você quiser, no caso os dados da tabela

Setar no Map da Aplicacao:

FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().put("dadosEdicao" + usuario.getId(), usuarioEdicao);

Recuperar do Map da Aplicacao:

FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("dadosEdicao" + usuario.getId());

E o mais importante, não esquecer de remover da aplicação quando salvar no banco

FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().remove("dadosEdicao" + usuario.getId());

2)Criar uma tabela que possui o id do funcionario e os dados da edição, caso a edição seja aprovada, essa tabela perde esse registro ou cria também uma coluna de ATIVO e seta o valor para false.
A lógica seria a seguinte:
Você verifica nessa tabela se existe algum dado do ID X, se sim, você traz os dados, se não, você procura na tabela de funcionario mesmo

3)Converter o objeto da tabela em XML, isso é MUITO FÁCIL com JAX-B
Exemplo:

@XmlRootElement //Anotação do JAX-B (necessária)
public class Carro {
	
	private String nome;
	private int portas;
	private List<Motorista> motoristas;
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public int getPortas() {
		return portas;
	}
	public void setPortas(int portas) {
		this.portas = portas;
	}
	public List<Motorista> getMotoristas() {
		return motoristas;
	}
	public void setMotoristas(List<Motorista> motoristas) {
		this.motoristas = motoristas;
	}
}

public class Motorista {
	private String nome;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
}
try {
	JAXBContext jaxbContext = JAXBContext.newInstance(Carro.class);
	Marshaller marshaller = jaxbContext.createMarshaller();//Objeto para criar o XML
	marshaller.marshal(carro, new File("carro.xml"));
			
	Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();//Objeto para ler o XML
	Carro carroXml = (Carro) unmarshaller.unmarshal(new FileReader("carro.xml"));
			

} catch (Exception e) {
	e.printStackTrace();	}

Na verdade é mais complexo do que isso, tive que uma pequena ideia que quase deu certo, só preciso saber como atualizar meu Input toda hora que eu mudar algo na Datatable se poder me ajudar agradeço, o negocio vai ser da seguinte forma tem a primeira tela que a pessoa digita as informações e essas informações da Datatable depois vai pra segunda tela conforme uma regra de negocio ele vai pra um usuário especifico e faz isso mais duas vezes até chegar na terceira tela, que vai ter támbem aprovar ou reprovar como se ele tivesse subindo de hierarquia para aprovação até aí beleza, dai somente quando aprovar na terceira tela, com o terceiro usuário diferente que vai gravar na tabela essas informações, por isso tem que ir passando essas informações até a última tela, mas enfim minha ideia do JSON, está quase dando certo aqui pensei em colocar um inputText hidden pra pegar o JSON só que preciso da um jeito dele pegar sempre atualizado no caso está atualizando só quando abre a tela.

HTML:

<h:form id="form">
   <p:growl id="msgs" showDetail="true"/>
 
   <p:dataTable id="dataTableAprovacaoFuncionario" widgetVar="listaAprovacaoFuncionario" var="aprovacaoFuncionario" value="#{dtAddRowView.listaAprovacaoFuncionario}" editable="true" style="margin-bottom:20px">
	   <f:facet name="header">
		   Funcionários
	   </f:facet>
 
	   <p:ajax event="rowEdit" listener="#{dtAddRowView.onRowEdit}" update=":form:msgs"/>
	   <p:ajax event="rowEditCancel" listener="#{dtAddRowView.onRowCancel}" update=":form:msgs"/>
 
	   <p:column headerText="Matricula">
		   <p:cellEditor>
			   <f:facet name="output"><h:outputText value="#{aprovacaoFuncionario.matricula}" /></f:facet>
			   <f:facet name="input">
			   <p:inputText id="matricula" value="#{aprovacaoFuncionario.matricula}" style="width:100%" label="Matricula">
					<p:ajax event="blur" listener="#{dtAddRowView.selectRowAprovacaoFuncionario(aprovacaoFuncionario)}" update=":form:dataTableAprovacaoFuncionario, :form:msgs"/>
				</p:inputText>
			   </f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column headerText="Nome">
		   <p:cellEditor>
			   <f:facet name="output"><h:outputText value="#{aprovacaoFuncionario.nome}" /></f:facet>
			   <f:facet name="input"><p:inputText value="#{aprovacaoFuncionario.nome}" style="width:100%" label="Nome" disabled="true"/></f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column headerText="Turno">
		   <p:cellEditor>
			   <f:facet name="output"><h:outputText value="#{aprovacaoFuncionario.turno}" /></f:facet>
			   <f:facet name="input"><p:inputText value="#{aprovacaoFuncionario.turno}" style="width:100%" label="Turno" disabled="true"/></f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column headerText="Transporte">
		   <p:cellEditor>
			   <f:facet name="output"><h:selectBooleanCheckbox value="#{aprovacaoFuncionario.transporte}" /></f:facet>
			   <f:facet name="input"><p:selectBooleanCheckbox value="#{aprovacaoFuncionario.transporte}" style="width:100%" label="Transporte"/></f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column style="width:32px">
		   <p:rowEditor />
	   </p:column>
   </p:dataTable>
 
	<div class="ui-g">
		<div class="ui-g-12">
			<p:commandButton value="Novo Registro" styleClass="ui-priority-primary" process="@this" update=":form:msgs"
							 actionListener="#{dtAddRowView.onAddNew()}" oncomplete="PF('listaAprovacaoFuncionario').addRow();"/>
		</div>
	</div>
							
	<p:inputText id="listaAprovacaoFuncionario" name="listaAprovacaoFuncionario" value="#{dtAddRowView.listaAprovacaoFuncionarioToJSON}" valueChangeListener="#{dtAddRowView.listaAprovacaoFuncionarioToJSON}" type="hidden">
		<p:ajax/>
	</p:inputText>
 
</h:form>

Bean:

public String getListaAprovacaoFuncionarioToJSON () {
	
	String jsonListaAprovacaoFuncionario = new Gson().toJson(getListaAprovacaoFuncionario());
	
	return jsonListaAprovacaoFuncionario;
}

@edinhocoelho Atualiza ele por ajax
Sempre que for atualizado via ajax, vai executar o metodo teste


<p:commandButton value="Atualizar" process="@this" update="testt" ></p:commandButton>
		
<p:outputPanel id="testt">
	<f:event listener="#{testeBean2.teste()}" type="preRenderView"></f:event>
</p:outputPanel>

Ao invés de ser um commandButton, é o componente que vc quiser, no evento que quiser

Bom… você ja atualiza quando salva a edição, pq não usa um listener para executar o método?

estou quase lá, só fazer o JSON renderizar agora na outra tela rs. Fico assim:

<h:form id="form">
   <p:growl id="msgs" showDetail="true"/>
 
   <p:dataTable id="dataTableAprovacaoFuncionario" widgetVar="listaAprovacaoFuncionario" var="aprovacaoFuncionario" value="#{dtAddRowView.listaAprovacaoFuncionario}" editable="true" style="margin-bottom:20px">
	   <f:facet name="header">
		   Funcionários
	   </f:facet>
 
	   <p:ajax event="rowEdit" listener="#{dtAddRowView.onRowEdit}" update=":form:msgs, :form:listaAprovacaoFuncionario"/>
	   <p:ajax event="rowEditCancel" listener="#{dtAddRowView.onRowCancel}" update=":form:msgs, :form:listaAprovacaoFuncionario"/>
 
	   <p:column headerText="Matricula">
		   <p:cellEditor>
			   <f:facet name="output"><h:outputText value="#{aprovacaoFuncionario.matricula}" /></f:facet>
			   <f:facet name="input">
			   <p:inputText id="matricula" value="#{aprovacaoFuncionario.matricula}" style="width:100%" label="Matricula">
					<p:ajax event="blur" listener="#{dtAddRowView.selectRowAprovacaoFuncionario(aprovacaoFuncionario)}" update=":form:dataTableAprovacaoFuncionario, :form:msgs, :form:listaAprovacaoFuncionario"/>
				</p:inputText>
			   </f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column headerText="Nome">
		   <p:cellEditor>
			   <f:facet name="output"><h:outputText value="#{aprovacaoFuncionario.nome}" /></f:facet>
			   <f:facet name="input"><p:inputText value="#{aprovacaoFuncionario.nome}" style="width:100%" label="Nome" disabled="true"/></f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column headerText="Turno">
		   <p:cellEditor>
			   <f:facet name="output"><h:outputText value="#{aprovacaoFuncionario.turno}" /></f:facet>
			   <f:facet name="input"><p:inputText value="#{aprovacaoFuncionario.turno}" style="width:100%" label="Turno" disabled="true"/></f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column headerText="Transporte">
		   <p:cellEditor>
			   <f:facet name="output">
					<h:selectBooleanCheckbox value="#{aprovacaoFuncionario.transporte}">
						<p:ajax event="blur" listener="#{dtAddRowView.selectRowAprovacaoFuncionario(aprovacaoFuncionario)}" update=":form:dataTableAprovacaoFuncionario, :form:msgs, :form:listaAprovacaoFuncionario"/>
					</h:selectBooleanCheckbox>
				</f:facet>
			   <f:facet name="input">
					<p:selectBooleanCheckbox value="#{aprovacaoFuncionario.transporte}" style="width:100%" label="Transporte">
						<p:ajax event="blur" listener="#{dtAddRowView.selectRowAprovacaoFuncionario(aprovacaoFuncionario)}" update=":form:dataTableAprovacaoFuncionario, :form:msgs, :form:listaAprovacaoFuncionario"/>
					</p:selectBooleanCheckbox>
				</f:facet>
		   </p:cellEditor>
	   </p:column>
 
	   <p:column style="width:32px">
		   <p:rowEditor />
	   </p:column>
   </p:dataTable>
 
	<div class="ui-g">
		<div class="ui-g-12">
			<p:commandButton value="Novo Registro" styleClass="ui-priority-primary" process="@this" update=":form:msgs, :form:listaAprovacaoFuncionario"
							 actionListener="#{dtAddRowView.onAddNew()}" oncomplete="PF('listaAprovacaoFuncionario').addRow();"/>
		</div>
	</div>
							
	<p:inputText id="listaAprovacaoFuncionario" name="listaAprovacaoFuncionario" value="#{dtAddRowView.listaAprovacaoFuncionarioToJSON}" type="hidden">
		<p:ajax/>
	</p:inputText>
 
</h:form>

Estou tentando passar a variável direto assim.

HTML:

<p:dataTable id="dataTableAprovacaoFuncionario" value="#{form:listaAprovacaoFuncionario}" editable="false" style="margin-bottom:20px">

Estou levando o erro abaixo:

Data                 : 25/08/2018 22:02:29.301 
Exceção              : org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 7.
Was expecting one of:
	"}" ...
	"." ...
	"[" ...
	">" ...
	"gt" ...
	"<" ...
	"lt" ...
	">=" ...
	"ge" ...
	"<=" ...
	"le" ...
	"==" ...
	"eq" ...
	"!=" ...
	"ne" ...
	"&&" ...
	"and" ...
	"||" ...
	"or" ...
	"*" ...
	"+" ...
	"-" ...
	"/" ...
	"div" ...
	"%" ...
	"mod" ...
	 
Usuário              : danielle 
Navegador Usuário    : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 
OS Servidor          : Windows 10 
Versão Populis       : 2.9.2-SNAPSHOT 
Número do build      : DESENV 
DB Schema            : Populis. 
Sistema DB           : MicrosoftSQL 
Pilha                : 
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 7.
Was expecting one of:
	"}" ...
	"." ...
	"[" ...
	">" ...
	"gt" ...
	"<" ...
	"lt" ...
	">=" ...
	"ge" ...
	"<=" ...
	"le" ...
	"==" ...
	"eq" ...
	"!=" ...
	"ne" ...
	"&&" ...
	"and" ...
	"||" ...
	"or" ...
	"*" ...
	"+" ...
	"-" ...
	"/" ...
	"div" ...
	"%" ...
	"mod" ...
	
	at org.apache.el.parser.ELParser.generateParseException(ELParser.java:2217)
	at org.apache.el.parser.ELParser.jj_consume_token(ELParser.java:2099)
	at org.apache.el.parser.ELParser.DeferredExpression(ELParser.java:116)
	at org.apache.el.parser.ELParser.CompositeExpression(ELParser.java:43)
	at org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:124)
	at org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:183)
	at org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:226)
	at org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:68)
	at org.jboss.weld.util.el.ForwardingExpressionFactory.createValueExpression(ForwardingExpressionFactory.java:49)
	at org.jboss.weld.el.WeldExpressionFactory.createValueExpression(WeldExpressionFactory.java:50)
	at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:385)
	at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:351)
	at com.sun.faces.facelets.tag.jsf.ComponentRule$ValueExpressionMetadata.applyMetadata(ComponentRule.java:107)
	at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81)
	at javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.doNewComponentActions(ComponentTagHandlerDelegateImpl.java:408)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:171)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:187)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
	at com.sun.faces.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:106)
	at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:178)
	at com.sun.faces.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:395)
	at com.sun.faces.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:366)
	at com.sun.faces.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:111)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:187)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:187)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)
	at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
	at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
	at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:320)
	at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:379)
	at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:358)
	at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:199)
	at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:155)
	at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
	at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:87)
	at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:164)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:914)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at br.com.glr.populisii.usuario.FiltroLiberacaoPaginas.doFilter(FiltroLiberacaoPaginas.java:29)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at br.com.glr.populisii.usuario.FiltroAutenticacao.doFilter(FiltroAutenticacao.java:26)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:420)
	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926)
	at java.lang.Thread.run(Thread.java:748)