Galeraa to com um problema aqui que não consigo resolver, já revirei o código e não encontro… acho que é simples mais ainda nao estou encontrado. O programa roda belezinha faz todos os procedimentos grava o tudo que preciso no banco tudo ok, porém tenho um gravo em um arquivo de log os erros que ele me retorna, no output do netbeans nao retorna nada de erro porem no log sempre me retorna o seguinte:
Galeraa to com um problema aqui que não consigo resolver, já revirei o código e não encontro… acho que é simples mais ainda nao estou encontrado. O programa roda belezinha faz todos os procedimentos grava o tudo que preciso no banco tudo ok, porém tenho um gravo em um arquivo de log os erros que ele me retorna, no output do netbeans nao retorna nada de erro porem no log sempre me retorna o seguinte:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagemain.dao.importacao;importjava.sql.PreparedStatement;importjava.sql.SQLException;importjava.text.ParseException;importmain.dao.configuracao.ConfiguracaoDao;importmain.dao.exportacao.GenericDao;importmain.gerador.registros.retorno.LeituraArquivoRetorno;importmain.model.configuracao.Configuracao;importmain.model.importacao.CupomFiscal;importmain.model.importacao.Financeiro;importorg.apache.log4j.Logger;/** * * @author Rodrigo */publicclassFinanceiroDaoextendsGenericDao{privatestaticfinalStringSQL_INS="insert into ALC_PARCELA "+"(PARCELAID, DOCTOID, PARCELA, LOCALIZACAO, GRUPOPORTADOR, "+"PORTADOR, VENCIMENTO, VALOR, NUMERO) "+"values (?, ?, ?, ?, ?, ?, ?, ?, ?)";privatestaticfinalStringSQLUPDATEDOCTO_STATUS1="UPDATE ALC_DOCTO SET STATUS = 1 "+"where DOCTOID = ?";privatestaticfinalStringSQLUPDATEDOCTO_STATUS0="UPDATE ALC_DOCTO SET STATUS = 0 "+"where DOCTOID = ?";publicvoidsave(Financeirofinanceiro)throwsParseException,SQLException,ClassNotFoundException,Exception{if(!financeiro.getCondicaoPagamento().equals("V")&&!financeiro.getCancelado().equals("C")){PreparedStatementps=getStatement(SQL_INS);financeiro.setParcelaId(getNextSequence("GEN_ALC_PARCELA"));ps.setInt(1,financeiro.getParcelaId());// PARCELAIDps.setInt(2,financeiro.getCupomFiscal().getCupom_id());// DOCTOIDps.setInt(3,financeiro.getParcela()+1);// PARCELA - No kraken a primeira parecela é 1 e não 0ps.setString(4,"01");// LOCALIZACAOps.setString(5,"LC");// GRUPOPORTADORps.setString(6,"000001");// GRUPOPORTADORps.setDate(7,newjava.sql.Date(financeiro.getVencimento().getTime()));// VENCIMENTOps.setBigDecimal(8,financeiro.getValor());if(financeiro.getObservacao().trim().isEmpty()){ps.setString(9,null);}else{ps.setString(9,financeiro.getObservacao().substring(0,13));}ps.executeUpdate();ps.close();PreparedStatementpsUpdatez=getStatement(SQLUPDATEDOCTO_STATUS0);//colocando 0 no statuspsUpdatez.setInt(1,financeiro.getCupomFiscal().getCupom_id());psUpdatez.execute();psUpdatez.close();PreparedStatementpsUpdatea=getStatement(SQLUPDATEDOCTO_STATUS1);//colocando 1 no statuspsUpdatea.setInt(1,financeiro.getCupomFiscal().getCupom_id());psUpdatea.execute();psUpdatea.close();}}}
F
Fabio_Lacerda
Essa daqui é uma parte da classe ImportarRetorno peguei so a parte que faz o financeiro pois ela é um pouco grande
privatebooleangravaFinanceiro(LeituraArquivoRetornorcf){booleanresult=true;FinanceiroDaodao=newFinanceiroDao();ParametrosDaoparamDao=newParametrosDao();try{paramDao.startTransaction();Parametrosparam=paramDao.load();valorOriginalALC=param.getBloqueioAlmoxarifado();valorOriginalLIV=param.getBloqueioLivro();paramDao.mudaBloqueio("N","N");paramDao.commitTransaction();for(Financeiromra:rcf.getFinanceiros()){if(mra!=null){dao.save(mra);}}dao.commitTransaction();}catch(ParseExceptionex){log.error("ParseException",ex);mensagem=ex.getMessage();result=false;try{dao.rollbackTransaction();}catch(SQLExceptionex1){log.error("SQLException",ex1);}}catch(SQLExceptionex){log.error("SQLException",ex);mensagem=ex.getMessage();result=false;try{dao.rollbackTransaction();}catch(SQLExceptionex1){log.error("SQLException",ex1);}}catch(ClassNotFoundExceptionex){log.error("ClassNotFoundException",ex);mensagem=ex.getMessage();result=false;try{dao.rollbackTransaction();}catch(SQLExceptionex1){log.error("SQLException",ex1);}}catch(Exceptionex){log.error("Exception",ex);mensagem=ex.getMessage();result=false;// if (rcf.getTotalRegistro13()>0){// try{// dao.rollbackTransaction();// } catch (SQLException ex1) {// log.error("SQLException", ex1);// } // }}//voltando o status de bloqueiotry{paramDao.mudaBloqueio(valorOriginalALC,valorOriginalLIV);paramDao.commitTransaction();}catch(SQLExceptionex){log.error("SQLException",ex);}catch(ClassNotFoundExceptionex){log.error("ClassNotFoundException",ex);mensagem=ex.getMessage();}returnresult;}
Ataxexe
Arrisco dizer que a variável cx está nula. Pode ser que o método connect não tenha sido chamado.
wiltonor
o erro está na linha dao.save(mra); da classe importa retorno, nesse ponto não há transação aberta, faltou um dao.startTransaction(); antes pois o paramDao.commitTransaction(); fechou a transação aberta por paramDao.startTransaction();
O Ataxexe acertou a causa, realmente é porque o cx é nulo, conforme explicação acima.
F
Fabio_Lacerda
realmente o problema estava neste ponto muito obrigado Ataxexe e wiltonor me ajudaram muito mesmo