Session.getAttribute("") do mentawai não roda... [URGENTE]

Boa tarde pessoal!

seguinte… tenho uma aplicação rodando com mentawai…
quando eu dou um getAttribute a execução para… não executa… não mostra mensagem de erro…
não faz nada…

o código da minha action é o seguinte :

public String salvar() throws Exception {
		boolean novoCadastro = false; // identifica se eh um cadastro novo
		// variaveis que conterao os dados da regional
		Regional regional = null;


		// gerenciador de Regional para adicionar/alterar um registro
		RegionalGerenciador gerRegional = (RegionalGerenciador) input.getValue("regionalGerenciador");
		// inicia transaction
		gerRegional.beginTransaction();


		// captura id da regional que esta na session, se houver eh uma alteracao se nao houver eh um registro novo
		int id = 0;
		try {
			id = (Integer) session.getAttribute("id");
		} catch (Exception e) {
			id = 0;
		}

		try {
			// capturando valores da session
			String idcliente   = session.getAttribute("idcliente").toString();
			String nome        = session.getAttribute("nome").toString();
			String codregional = session.getAttribute("codregional").toString();

			if (id < 1 ){
				//nova regional
				novoCadastro = true;

				regional = new Regional();
				regional.setClienteportal(new Clienteportal());
			}else{
				//ediçao da regional
				novoCadastro = false;

				List<Regional> verifRegi = gerRegional.getRegionalbyID(id);
				if (verifRegi != null) {
					if (verifRegi.size() > 0) {
						regional = verifRegi.get(0);
					}
				}
				// se nao conseguiu trazer dados do banco
				if (regional == null ){
					novoCadastro = true;

					regional = new Regional();
					regional.setClienteportal(new Clienteportal());
				}
			}
			// adicionando valores
			regional.setNome(nome);
			regional.setCodregional(codregional);
			regional.getClienteportal().setId(Integer.parseInt(idcliente));

			// se for um novo cadastro salva, caso contrario altera
			if (novoCadastro){
				gerRegional.salvar(regional);  // salvando nova regional
			}else{
				gerRegional.alterar(regional);  // salvando alteracoes da regional
			}
			gerRegional.commitTransaction();  // finalizando transaction

		} catch (Exception e) {
			gerRegional.rollbackTransaction();  // desfazendo transaction
			addError(e.getMessage());
			return ERROR;
		}

		return SUCCESS;
	}

Alguém sabe o que pode estar acontecendo??

Valew

Henrique

Debuga aí e veja se algum desses retorna null.:

eu não consigo saber… também para a execução nestas capturas…

ele está “travando” em qualquer linha em que eu tenha um session.getAttribute("…");

valew pela resposta!

Henrique

no site do menta tem um forum em portugues, acho que fica mais facil vc obter suporte lá, principalmente se for um bug mesmo.

Nao conheço o Mentawai , mas de onde vc recupera o objeto Session?
Vc teria que recuperar o objeto HttpServletRequest a partir deste objeto buscar o objeto HttpSession


HttpSession session = request.getSession();

Calma. Não há qualquer tipo de bug na session. Acabei de rodar uma aplicação aqui que utiliza a session sem qualquer problema.

Primeiro vc tem que entender muito bem o problema, para só então resolve-lo.

Faça assim: (se não souber usar break-point) (vou confessar, eu tb não sei…)


System.out.println("Estou aqui...");

String id = (String) session.getAttribute("id");

System.out.println("Agora estou aqui...");

O nome disso é DEBUG!

Olá

Certo. Antes do lançamento do PC, lá pelos idos da década de 70 era assim que a gente fazia e até dava certo como pode também acontecer neste caso.

Mas a arquitetura do PC tem uma interrupção de hardware específica para execução passo a passo. Todos os programas que possuem funções de debug, a usam para parar nos breakpoints e depois retornar para executar a próxima instrução.

Quem não souber rodar um debug na IDE, pode experimentar com o eclipse seguindo http://www.guj.com.br/java.tutorial.artigo.168.1.guj

Veja também http://www.guj.com.br/posts/list/9450.java

[]s
Luca

Eu ainda não tentei fazer um break-point com o sysdeo… Deve funcionar… Sim, o breakpoint é 10 vezes melhor que o System.out…

Eu prefiro o System.out (quero dizer, obviamente, uma boa ferramenta de logging). Nao era o Kernighan que dizia que o logging é persistente e voce nao precisa ficar tentando reproduzir o bug? Devemos debugar como ultima opcao… é muito oneroso. Um bom logging aqui ou ali pode evitar que voce precisa debugar da proxima vez.