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

8 respostas
H

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

8 Respostas

fabiozoroastro

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

H

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

Henrik

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

ramilani12

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();
saoj

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!

Luca

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

saoj

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

Paulo_Silveira

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.

Criado 27 de junho de 2007
Ultima resposta 17 de dez. de 2007
Respostas 8
Participantes 7