Ir para conteúdo
  • Cadastre-se

dev botao

Erro ACBrBoleto + Java - Invalid memory access


Ver Solução Respondido por Daniel InfoCotidiano,

Recommended Posts

  • Consultores
 

vc quis dizer 0.1.1.10?

openssl
mas veja, ele precisa criar o log, executou o passo q te passei na maquina q nao esta gerando?
consegue criar um jar para eu testar em meu ambiente?
pode me enviar para [email protected], no corpo da mensagem favor colar o link deste post.
passar onde esta salvando a dll e dependencia para que eu possa tentar reproduzir aqui

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Consultores
9 minutos atrás, Messias Bittencourt disse:

Enviei na sexta os fontes, o jar e a dll que estou usando.

bom dia !
Nao achei em nossa caixa , enviou para [email protected]?
(nao esqueca de colar o link deste post)
Qual seu email? se puder reenviar por favor

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
1 hora atrás, Daniel InfoCotidiano disse:

bom dia !
Nao achei em nossa caixa , enviou para [email protected]?
(nao esqueca de colar o link deste post)
Qual seu email? se puder reenviar por favor

Sim. Enviei para [email protected] sexta dia 31 na parte da manhã às 10:44.

Enviado através do email [email protected]. Vou encaminhar o mesmmo.

Agora, Messias Bittencourt disse:

Sim. Enviei para [email protected] sexta dia 31 na parte da manhã às 10:44.

Enviado através do email [email protected]. Vou encaminhar o mesmo.

Enviei novamente

Link para o comentário
Compartilhar em outros sites

  • Consultores

@Messias Bittencourtrecebi sim
e tbm recebi o do dia 31, sempre que nos enviar o email, precisa colocar no corpo da mensagem o link do forum para que possamos identificar de que é o email.
no seu caso, procurei o email como messias e por anexo .. mas vi q envou link.
vou testar em meu ambiente.

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
3 horas atrás, Daniel InfoCotidiano disse:

@Messias Bittencourtrecebi sim
e tbm recebi o do dia 31, sempre que nos enviar o email, precisa colocar no corpo da mensagem o link do forum para que possamos identificar de que é o email.
no seu caso, procurei o email como messias e por anexo .. mas vi q envou link.
vou testar em meu ambiente.

Muito obrigado pelas orientações. Assim será.

Link para o comentário
Compartilhar em outros sites

  • Consultores

precisava de um exemplo simples para teste. enfim executei o seu .jar
image.png

quais comandos disponiveis?
seu eu tentar localhost:8080
image.png

Tem como consultar o status do servico sefaz?
Salvei nesta pasta padrao a DLL
é assim q esta configurado ai com vc?
image.png

 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
5 minutos atrás, Daniel InfoCotidiano disse:

precisava de um exemplo simples para teste. enfim executei o seu .jar
image.png

quais comandos disponiveis?
seu eu tentar localhost:8080
image.png

Tem como consultar o status do servico sefaz?
Salvei nesta pasta padrao a DLL
é assim q esta configurado ai com vc?
image.png

 

localhost:8080/teste

Aí já executa o main registrando e salvando o pdf.
Com os endereços abaixo:
 

private static String ACBR_BOLETO_DLL = "C:\\dev\\Boletos_new\\arquivos_ini_hom\\ACBrBoleto64.dll";
private static String CEDENTE_INI = "C:\\dev\\Boletos_new\\arquivos_ini_hom\\cedente.ini"
private static String TITULO_INI = "C:\\dev\\Boletos_new\\arquivos_ini_hom\\titulo.ini";
private static String DIRETORIO = "C:\\dev\\Boletos_new\\arquivos_ini_hom\\";
 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Seu arquivo ACBrLib.INI está sendo criado na pasta do JAVA ele nao estava lendo o arquivo da sua pasta. ele vai ler ou criar a partir do comando Inicializar. informe caminho completo, conforme exemplo abaixo.

Tentou inicializar informando a pasta correta? onde vc passa onde vai ser inicializada a INI entao passe sua pasta
Boleto_Inicializar([ eArqConfig, eChaveCrypt ]); exemplo:

Boleto_Inicializar( 'C:\dev\Boletos_new\ACBrLib\x64\ACBrLib.INI',)

ja configure o log este ini inicializado com os comandos ConfigGravarValor. mudei na mão e ele gerou o log corretamente:
Boleto_ConfigGravarValor(eSessao, eChave, sValor);
Exemplo:

acbrBoleto.configGravarValor(ACBrSessao.Principal, "LogNivel", 4);
acbrBoleto.configGravarValor(ACBrSessao.Principal, "LogPath", ''C:\dev\Boletos_new\Log\');
acbrBoleto.configGravar();
 

Screenshot_292.png

 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Consultores

Não tenho, mas vc não consegue abstrair isso com as funcoes q citei acima ?

exemplo
configGravarValor(ACBrSessao.Principal, "LogNivel", 4);
acbrBoleto.configGravarValor(ACBrSessao.Principal, "LogPath", ''C:\dev\Boletos_new\Log\');

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Em 04/06/2024 at 15:42, Daniel InfoCotidiano disse:

 

Bom dia prezados.

Consegui evoluir aqui. Tive de alterar meu ambiente e sair do Spring. Agora estou usando:
- Eclipse 2023-12
- Jakarta (Para o serviço rest)
- Tomcat 10.1 (Que suporta o jakarta)

Mas agora está lendo o ini, gerando log e gravando o arquivo pdf na pasta definida.
image.png.c12a36845a4e0d862ee92c5b05a5d700.png 

image.png.d6313196f3e2ca76891d06c2be1bed45.png

Porém na hora de ...Boleto_IncluirTitulos... ele continua dando -10.
image.png.af917d1d06b35df6307fc7df440651f1.png

Pelo log vocês conseguem me dizer o porque deste -10 neste ponto?

ACBrLibBoleto-20240606.log

Anexo log para analise.

Muito obrigado por toda a ajuda.

image.png

Link para o comentário
Compartilhar em outros sites

  • Consultores
06/06/24 08:39:06:036 - Destravar
06/06/24 08:39:06:046 -    SetRetorno(-10, Unable to create file "C:\Program Files\Java\jdk-11.0.15.1\bin\boleto.pdf": Acesso negado.)
06/06/24 08:39:07:489 - Boleto_SetDiretorioArquivo(D:\Dev\arquivos_ini\0.2.0.291\Cdecl, arquivo.pdf )

Está sem acesso na pasta para salvar o boleto.pdf.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
49 minutos atrás, Renato Rubinho disse:
06/06/24 08:39:06:036 - Destravar
06/06/24 08:39:06:046 -    SetRetorno(-10, Unable to create file "C:\Program Files\Java\jdk-11.0.15.1\bin\boleto.pdf": Acesso negado.)
06/06/24 08:39:07:489 - Boleto_SetDiretorioArquivo(D:\Dev\arquivos_ini\0.2.0.291\Cdecl, arquivo.pdf )

Está sem acesso na pasta para salvar o boleto.pdf.

Mas isto acho q foi resolvido por ele mesmo na linha abaixo não?
 

06/06/24 08:39:07:489 - Boleto_SetDiretorioArquivo(D:\Dev\arquivos_ini\0.2.0.291\Cdecl, arquivo.pdf )
Agora, Messias Bittencourt disse:

Mas isto acho q foi resolvido por ele mesmo na linha abaixo não?
 

06/06/24 08:39:07:489 - Boleto_SetDiretorioArquivo(D:\Dev\arquivos_ini\0.2.0.291\Cdecl, arquivo.pdf )

Pq ele está salvando o boleto com sucesso mas neste end acima com o nome de arquivo.pdf

 

Agora, Messias Bittencourt disse:

Mas isto acho q foi resolvido por ele mesmo na linha abaixo não?
 

06/06/24 08:39:07:489 - Boleto_SetDiretorioArquivo(D:\Dev\arquivos_ini\0.2.0.291\Cdecl, arquivo.pdf )

Pq ele está salvando o boleto com sucesso mas neste end acima com o nome de arquivo.pdf

 

Ou é pq ele salva em 2 locais?

2 minutos atrás, Messias Bittencourt disse:

Mas isto acho q foi resolvido por ele mesmo na linha abaixo não?
 

06/06/24 08:39:07:489 - Boleto_SetDiretorioArquivo(D:\Dev\arquivos_ini\0.2.0.291\Cdecl, arquivo.pdf )

Pq ele está salvando o boleto com sucesso mas neste end acima com o nome de arquivo.pdf

 

Ou é pq ele salva em 2 locais?

O -10 aparece é na "06/06/24 11:02:03:184 - Boleto_IncluirTitulos(D:\Dev\arquivos_ini\titulo.ini, P )"

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
7 minutos atrás, Renato Rubinho disse:

Tente usar o Boleto_UltimoRetorno depois deste método para capturar o retorno da lib.

Este daí já consegui resolver. Eu dei permissão na pasta bin. O engraçado é que realmente ele grava duas vezes o mesmo arquivo pdf.
Na pasta que eu defini com o nome que eu defini e uma cópia na pasta bin do java mas com o nome boleto.pdf....
Mas enfim e de qq forma passei deste problem.

 

Agora o que está acontecendo é que no Boleto_EnviarBoleto ele dá o erro abaixo:

06/06/24 13:15:19:153 - Boleto_EnviarBoleto(0 )
06/06/24 13:15:19:168 - Travar
06/06/24 13:15:19:180 - Destravar
06/06/24 13:15:19:193 -    SetRetorno(-10, Access violation)
 

E no Boleto_Finalizar ele dá o erro abaixo:

6/06/24 13:18:32:973 - LIB_Finalizar
06/06/24 13:18:32:986 -    SetRetorno(-2, Access violation)
 

Vou tentar o Boleto_UltimoRetorno conforme sugerido pra tentar descobrir o que pode ser.

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
9 minutos atrás, Messias Bittencourt disse:

E no Boleto_Finalizar ele dá o erro abaixo:

6/06/24 13:18:32:973 - LIB_Finalizar
06/06/24 13:18:32:986 -    SetRetorno(-2, Access violation

Tente aumentar o tamanho da alocação de memória que está fazendo para a sResposta que está passando neste método.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
1 hora atrás, Renato Rubinho disse:

Tente aumentar o tamanho da alocação de memória que está fazendo para a sResposta que está passando neste método.

Abaixo os retornos:
image.png.d6c38b5c012c637d41bc6a7d0e0d8161.png

Veja se está correto meu método por favor:
 

public static void geraBoleto(){

 

int inicializar = ACBrBoletoLib.INSTANCE.Boleto_Inicializar("D:\\Dev\\arquivos_ini\\0.2.0.272\\acbrlib.ini", "");

 

int limpar = ACBrBoletoLib.INSTANCE.Boleto_LimparLista();

//int config = ACBrBoletoLib.INSTANCE.Boleto_ConfigurarDados(CEDENTE_INI);

//int incluir = ACBrBoletoLib.INSTANCE.Boleto_IncluirTitulos(TITULO_INI, "P");

int configIncluir = ACBrBoletoLib.INSTANCE.Boleto_IncluirTitulos(CEDENTE_TITULOS_INI, "P");

int setdir = ACBrBoletoLib.INSTANCE.Boleto_SetDiretorioArquivo(DIRETORIO, "arquivo.pdf");

int gerar = ACBrBoletoLib.INSTANCE.Boleto_GerarPDF();

 

ByteBuffer bb = ByteBuffer.allocate(6144);

int enviar = ACBrBoletoLib.INSTANCE.Boleto_EnviarBoleto(0, bb, null);

ByteBuffer cc = ByteBuffer.allocate(6144);

IntByReference exitCode1 = new IntByReference();

int enviarUltimoBoleto = ACBrBoletoLib.INSTANCE.Boleto_UltimoRetorno(cc, exitCode1);

 

bb.toString();

 

String newContent = new String(bb.array(), Charset.forName("UTF-8"));

System.out.println(newContent);

 

int finalizar = ACBrBoletoLib.INSTANCE.Boleto_Finalizar();

ByteBuffer dd = ByteBuffer.allocate(6144);

IntByReference exitCode2 = new IntByReference();

int finalizarUltimoBoleto = ACBrBoletoLib.INSTANCE.Boleto_UltimoRetorno(dd, exitCode2);

}

Agora, Messias Bittencourt disse:

Abaixo os retornos:
image.png.d6c38b5c012c637d41bc6a7d0e0d8161.png

Veja se está correto meu método por favor:
 

public static void geraBoleto(){

 

int inicializar = ACBrBoletoLib.INSTANCE.Boleto_Inicializar("D:\\Dev\\arquivos_ini\\0.2.0.272\\acbrlib.ini", "");

 

int limpar = ACBrBoletoLib.INSTANCE.Boleto_LimparLista();

//int config = ACBrBoletoLib.INSTANCE.Boleto_ConfigurarDados(CEDENTE_INI);

//int incluir = ACBrBoletoLib.INSTANCE.Boleto_IncluirTitulos(TITULO_INI, "P");

int configIncluir = ACBrBoletoLib.INSTANCE.Boleto_IncluirTitulos(CEDENTE_TITULOS_INI, "P");

int setdir = ACBrBoletoLib.INSTANCE.Boleto_SetDiretorioArquivo(DIRETORIO, "arquivo.pdf");

int gerar = ACBrBoletoLib.INSTANCE.Boleto_GerarPDF();

 

ByteBuffer bb = ByteBuffer.allocate(6144);

int enviar = ACBrBoletoLib.INSTANCE.Boleto_EnviarBoleto(0, bb, null);

ByteBuffer cc = ByteBuffer.allocate(6144);

IntByReference exitCode1 = new IntByReference();

int enviarUltimoBoleto = ACBrBoletoLib.INSTANCE.Boleto_UltimoRetorno(cc, exitCode1);

 

bb.toString();

 

String newContent = new String(bb.array(), Charset.forName("UTF-8"));

System.out.println(newContent);

 

int finalizar = ACBrBoletoLib.INSTANCE.Boleto_Finalizar();

ByteBuffer dd = ByteBuffer.allocate(6144);

IntByReference exitCode2 = new IntByReference();

int finalizarUltimoBoleto = ACBrBoletoLib.INSTANCE.Boleto_UltimoRetorno(dd, exitCode2);

}

Segue log:
ACBrLibBoleto Demo-20240606.log

Link para o comentário
Compartilhar em outros sites

  • Consultores

@Messias Bittencourt vc esta usando dll demo
observe a msg de reposta
"SetRetorno(-999, O Demo da ACBrLibBoleto Demo expirou)"

Vou te passar o link da lib de producao

 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
1 hora atrás, Daniel InfoCotidiano disse:

@Messias Bittencourt vc esta usando dll demo
observe a msg de reposta
"SetRetorno(-999, O Demo da ACBrLibBoleto Demo expirou)"

Vou te passar o link da lib de producao

 

Baixei ele e já melhorou. Agora apenas o Boleto_EnviarBoleto que está dano -10.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia !
Qual é o banco ?
Pode anexar o titulo e cedente aqui p que eu possa testar em meu ambiente?
se conter dados sensiveis, envie para [email protected], no corpo da mensagem favor colar o link deste topico para que possamos identifica-lo

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.