Target Unreachable

2 respostas
nandobgi

Estou tendo problemas ao gravar um registro em uma aplicação JSF, pesquisei aqui no fórum mas não encontrei nada que pudesse me ajudar.

Segue abaixo meu código

Managed Bean

private GrupoWorkflow grupoWorkflow = new GrupoWorkflow();
	private GrupoWorkflowUsuario grupoWorkflowUsuario = new GrupoWorkflowUsuario();
	

	public GrupoWorkflowUsuario getGrupoWorkflowUsuario() {
		return grupoWorkflowUsuario;
	}
	
	public GrupoWorkflow getGrupoWorkflow() {
		return grupoWorkflow;
	}

       public void salvar(ActionEvent event) {
		Session session = HibernateUtil.currentSession();
				
		Dao<GrupoWorkflow> daoGrupoWorkflow = new Dao<GrupoWorkflow>(session, GrupoWorkflow.class);
		grupoWorkflowUsuario.setGrupoWorkflow(daoGrupoWorkflow.load(grupoWorkflowUsuario.getGrupoWorkflow().getId_grupo_workflow()));
		
		Dao<GrupoWorkflowUsuario> daoGrupoWorkflowUsuario = new Dao<GrupoWorkflowUsuario>(session,GrupoWorkflowUsuario.class);
		grupoWorkflowUsuario.setUsername(getUsuarioHandler().getUsuario().getUsername());
		
		daoGrupoWorkflowUsuario.saveOrUpdate(grupoWorkflowUsuario);
	}

}

xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">  
<f:subview id="cadastroGrupoWorkflow" xmlns:ui=  "http://java.sun.com/jsf/facelets"
      						 	      xmlns:f=   "http://java.sun.com/jsf/core"
      						 	 	  xmlns:h=   "http://java.sun.com/jsf/html"
      						 	 	  xmlns:c=   "http://java.sun.com/jstl/core"
      						 	 	  xmlns:a4j= "http://richfaces.org/a4j"
      						 	 	  xmlns:rich="http://richfaces.org/rich">
	                            			
	<rich:modalPanel id="panelCadastroWorkflow" width="600" height="500" resizeable="false" style="background: #E5EEFF">
    	<f:facet name="header">
        	<h:panelGroup>
            	<h:outputText value="#{msg.tl_cadastroGrupoWorkflow}"></h:outputText>
            </h:panelGroup>	
        </f:facet>	

        <f:facet name="controls">
        	<h:panelGroup>
            	<h:graphicImage value="/images/close.png" style="cursor:pointer" id="hidelink"/>
                <rich:componentControl for="panelCadastroWorkflow" attachTo="hidelink" operation="hide" event="onclick"/>
			</h:panelGroup>
        </f:facet>
        				
        <rich:panelBar width="100%" styleClass="panel" id="panelBarCadastroWorkflow" headerClass="pagControl">
        	<rich:panelBarItem label="Workflow">
        		<a4j:form ajaxSubmit="true">
        		<!-- Cadastro Permissoes Workflow -->
					<h:panelGrid columns="2"> 	
		 		
		 				<h:outputText value="Username" />
		 				<h:inputText value="#{workflowUsuarioHandler.grupoWorkflowUsuario.username}" styleClass="inputDis" size="15" disabled="true" />
		 		 
				 		<h:outputText value="Fluxo" />
				 		<h:selectOneMenu id="selectGrupos" value="#{workflowUsuarioHandler.grupoWorkflowUsuario.grupoWorkflow.id_grupo_workflow}" styleClass="inputText">
				 			<f:selectItems value="#{workflowUsuarioHandler.comboGrupos}"/>
				 		</h:selectOneMenu>
		 				
		 				<h:selectBooleanCheckbox value="#{workflowUsuarioHandler.grupoWorkflowUsuario.permite_vistar}"/>
		 				<h:outputText value="Permite Vistar" />
		 				
		 				<h:selectBooleanCheckbox value="#{workflowUsuarioHandler.grupoWorkflowUsuario.permite_aprovar}"/>
		 				<h:outputText value="Permite Aprovar" />
		 				
		 				<h:selectBooleanCheckbox value="#{workflowUsuarioHandler.grupoWorkflowUsuario.permite_cancelar}"/>
		 				<h:outputText value="Permite Cancelar" />
		 				
		 				<h:selectBooleanCheckbox value="#{workflowUsuarioHandler.grupoWorkflowUsuario.permite_redirecionar}"/>
		 				<h:outputText value="Permite Redirecionar" />
		 				
		 				<h:selectBooleanCheckbox value="#{workflowUsuarioHandler.grupoWorkflowUsuario.permite_reiniciar}"/>
		 				<h:outputText value="Permite Reiniciar" />
		 				
						<h:selectBooleanCheckbox value="#{workflowUsuarioHandler.grupoWorkflowUsuario.recebe_redirecionamento}"/>
						<h:outputText value="Recebe Redirecionamento" />
						<a4j:commandButton value="#{msg.btn_salvar}" styleClass="commandButton" actionListener="#{workflowUsuarioHandler.salvar}" reRender="ajaxForm"  />
				
					</h:panelGrid>
        			<rich:messages/>
        		</a4j:form>
			</rich:panelBarItem>
		</rich:panelBar>
	</rich:modalPanel>
</f:subview>
</html>

Recebo o seguinte erro quando tento salvar

javax.servlet.ServletException: javax.servlet.ServletException: /cadastroGrupoWorkflow.xhtml @35,153 value="#{workflowUsuarioHandler.grupoWorkflowUsuario.grupoWorkflow.id_grupo_workflow}": Target Unreachable, 'grupoWorkflow' returned null
	br.com.sensatta.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:43)

Tentei debugar mas o erro acontece antes de entrar no método salvar.

Alguém poderia me ajudar?

Grato

2 Respostas

rponte

Olá,

De acordo com o erro,

1. javax.servlet.ServletException: javax.servlet.ServletException: /cadastroGrupoWorkflow.xhtml @35,153 value="#{workflowUsuarioHandler.grupoWorkflowUsuario.grupoWorkflow.id_grupo_workflow}": Target Unreachable, 'grupoWorkflow' returned null 2. br.com.sensatta.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:43)
O teu objeto grupoWorkflowUsuario possui um método getGrupoWorkflow() que está retornando null no lugar de uma instancia do objeto ‘grupoWorkflow’. Sempre que trabalhar com objetos (entidades por exemplo) no JSF tente retorna instancias vazias, e nunca nulas.

Sendo, nos teus métodos você poderia fazer algo como:

public Produto getProduto() { if (this.produto == null) { this.produto = new Produto(); } return this.produto; }

Ou você pode instancia-los no construtor da classe.
Abraços e boa sorte.

Z

Muchas gracias rponte! tu solución salvó mi problema!!

Criado 19 de agosto de 2008
Ultima resposta 27 de jun. de 2011
Respostas 2
Participantes 3