Msg de Exception sem ocorrer o Exception

5 respostas
victormenegusso

Olá pessoal, meu problema é... tenho um JSP que faz upload no banco de dados partir de um submit de outra pagina, ele insere normalmente os dados no banco de dados, mas ele retorna as msg de erro que eu coloquei no try/catch na parte de Banco de Dados, nao estou entendendo o motivo, alguem poderia dar uma ajudinha ?

Obrigado

Segue o codigo JSP

<%@page language="java" import="org.apache.commons.fileupload.*, java.util.*, java.io.*" %>
<%@ page import="java.sql.*" %>   
<%@ page import="org.postgresql.Driver" %>
<%

	String caminhoTemp = "/tmp/teste/";
	String pasta = "/tmp/teste/";
	String nomeArquivo = "";
	
	if (FileUpload.isMultipartContent(request)){
		DiskFileUpload upload = new DiskFileUpload();
		upload.setRepositoryPath(caminhoTemp);
		try{
			List items = upload.parseRequest(request);
			Iterator iter = items.iterator();
			while (iter.hasNext()) {
				FileItem item = (FileItem) iter.next();
				if (!item.isFormField()) {
					String nome=item.getName().toString();
					nomeArquivo=nome.substring(nome.lastIndexOf("\\")+1);
					//Grava o arquivo fixo
					File arquivo=new File(pasta+nomeArquivo);
					item.write(arquivo);
					out.write(pasta+nomeArquivo);
				
				}
			}
		}catch(FileUploadException e){
			out.write("Não foi possível efetivar o upload do arquivo - segue a causa do erro" + "<br>" + e.getMessage());
			e.printStackTrace();
		}
	}

	//--------------------------------------------BANCO DE DADOS------------------------------------------//

	String url = "jdbc:postgresql://***.***.*.***:5432/****8";
   	String username = "****";  
   	String password = "*******";
   	String SQL = "";
	String Codigo =  "";
	String Tipo = "";
   	
  
	try {//DRIVE
    		Class.forName("org.postgresql.Driver");// registra Drive
  	} catch (ClassNotFoundException cnfe) {
    		out.println("nao achou drive");
   			cnfe.printStackTrace();		
  	}
  
  	Connection con = null;
  
  	try {//
    		con = DriverManager.getConnection(url, username, password);
  	} catch (SQLException se) {
    		System.out.println("Nao foi possivel conectar");
    		se.printStackTrace();	
  	}

  	//----------------Pega o tipo--e o nome do Arquivo------------//
  	int tam = nomeArquivo.length();
  	int ind = 0;
  	while(ind < tam && nomeArquivo.charAt(ind)!= 'm' && nomeArquivo.charAt(ind)!= 'i' && nomeArquivo.charAt(ind)!= 'd'){//PEGA CODIGO
  		Codigo = Codigo.concat(nomeArquivo.valueOf(nomeArquivo.charAt(ind)));
  		ind++;
  	}
  	while(ind < tam && nomeArquivo.charAt(ind)!= '.'){//PEGA TIPO
  		Tipo = Tipo.concat(nomeArquivo.valueOf(nomeArquivo.charAt(ind)));
  		ind++;
  	}
  	out.print("<BR>" + Codigo + "<BR>");
  	out.print(Tipo + "<BR>");
  	//------------------------------------------------------------//

	out.print("ab");    
	
	
	SQL = "INSERT INTO alive_portal (codigo) SELECT '"+ Codigo +"' WHERE NOT EXISTS (SELECT codigo FROM alive_portal WHERE codigo = '"+ Codigo +"');";
	
	Statement stmcod = con.createStatement();
  	try 
	{
  	    	ResultSet rs = stmcod.executeQuery(SQL);
  	} 
	catch (Exception e) 
	{
  	   	e.printStackTrace();
  		out.write("erro no executeQuery");	
  	}

  	if(Tipo.equals("imagem"))//Tipo IMAGEM
	{
		out.print("a");
  		SQL = "update alive_portal set "+ Tipo +" = lo_import('" + pasta+nomeArquivo + "') where codigo = '"+ Codigo +"';";
  		Statement stmimg = con.createStatement();
  		try {
  	    	ResultSet rs = stmimg.executeQuery(SQL);
  	  	} 
		catch (Exception e) 
		{
  	   		e.printStackTrace();
  			out.write("erro no executeQuery");	
  	  	}
  	}
  	else //Tipo MAPA ou Descricao
	{ 
		out.print("b");
  		//update alive_portal set codigo='1234' where codigo='1';
  		SQL = "update alive_portal set "+ Tipo +" = lo_import('" + pasta+nomeArquivo + "') where codigo = '"+ Codigo +"';";
  		Statement stmap = con.createStatement();
  		try 
		{
  	    	ResultSet rs = stmap.executeQuery(SQL);
  	  	} 
		catch (Exception e) 
		{
  	   		e.printStackTrace();
  			out.write("erro no executeQuery");	
  	  	}
  	}

	try
	{  
		con.close();
		out.println("conexao  encerrada");  
	}
	catch(SQLException onConClose)
	{  
		out.println("Houve erro no fechamento da conexão");  
        onConClose.printStackTrace();  
    }  
	
	Runtime.getRuntime().exec("rm "+pasta+nomeArquivo);  
%>

5 Respostas

victormenegusso

wellington.nogueira vlw, é que eu pensava que quando nao gerava exception ele nao executava o que ta no catch

victormenegusso

quando ele executa essa parte

SQL = "INSERT INTO alive_portal (codigo) SELECT '"+ Codigo +"' WHERE NOT EXISTS (SELECT codigo FROM alive_portal WHERE codigo = '"+ Codigo +"');";

	Statement stmcod = con.createStatement();
        try 
        {
                ResultSet rs = stmcod.executeQuery(SQL);
        }
        catch (Exception e)
        {
              out.println("SQL Inicial" + " : " + e.getMessage());
        }

da o seguinte erro

SQL Inicial : Nenhum resultado foi retornado pela consulta.
victormenegusso

wellington.nogueira vlw deu certo cara ;D

WellingtonRamos

Nas mensagens, faça assim:

Ou

WellingtonRamos

use executeUpdate

Criado 14 de maio de 2010
Ultima resposta 14 de mai. de 2010
Respostas 5
Participantes 2