Oracle com Java

3 respostas
diogoprosoft

Galera estou com problemas com executar uma procedure do oracle quando estou utilizando conexao jndi do tomcat, vou explicar melhor…

Antes eu tinha uma classe com jdbc puro onde eu conectava o banco e fazia varias conexoes e executava um OracleCallableStatement para ecessar o codigo das procedures, hoje mudei para conexao jndi e começaram os problemas

Conexao

public void getConnection(){
        try{
        // Obtém a raiz da hierarquia de nomes
        InitialContext contexto = new InitialContext();
        // Obtém a origem dos dados
        DataSource ds = (DataSource)contexto.lookup("java:comp/env/jdbc/isdradsv");
        // Obtém uma conexão
        con = ds.getConnection();
        // Retorna a conexão
        }catch(Exception e){
            System.out.println("Erro na conexao " +e);
        }
        
    }

Persistencia da hora de fazer a procedure

try {
            oraCallStmt = (OracleCallableStatement) con.prepareCall(
                 "{call svi.svi_pkg.insert_situacao_imovel(?,?,?,?)}"
            );
            
            oraCallStmt.setInt(1, psituacaoImovel.getCdSituacao());
            oraCallStmt.setString(2, psituacaoImovel.getDeSituacao());
            oraCallStmt.registerOutParameter(1, OracleTypes.INTEGER);             
            oraCallStmt.registerOutParameter(3, OracleTypes.INTEGER);
            oraCallStmt.registerOutParameter(4, OracleTypes.VARCHAR);                                    
            oraCallStmt.execute();

            situacaoImovel.setCdSituacao(oraCallStmt.getInt(1));
            situacaoImovel.setPRetCodigo(oraCallStmt.getInt(3));
            situacaoImovel.setPRetMensagem(oraCallStmt.getString(4));
            
            oraCallStmt.close();
            
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return situacaoImovel;
    }

Na hora que passa por essa linha oraCallStmt = (OracleCallableStatement) con.prepareCall( "{call svi.svi_pkg.insert_situacao_imovel(?,?,?,?)}" );

Da o seguinte erro:

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: java.lang.NullPointerException
	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

java.lang.NullPointerException
	com.isdra.imovel.service.PersistenciaSituacaoImovel.insertSituacaoImovel(PersistenciaSituacaoImovel.java:33)
	com.isdra.imovel.service.SituacaoImovelService.insertSituacaoImovel(SituacaoImovelService.java:14)
	com.isdra.svi.imovel.ManterSituacaoImovelAction.execute(ManterSituacaoImovelAction.java:37)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.

Como posso resolver esse problema?

3 Respostas

furutani

Olá

O que tem na classe PersistenciaSituacaoImovel.java na linha 33?

diogoprosoft

A linha 33 e o inicio oraCallStmt.setInt(1, psituacaoImovel.getCdSituacao());

diogoprosoft

Resolvido…

Mudei todos os OracleCallStatement para CallStatement, e os OracleTypes para sqlTypes

Criado 25 de setembro de 2008
Ultima resposta 26 de set. de 2008
Respostas 3
Participantes 2