Ir para conteúdo
  • Cadastre-se

dev botao

Utilizando o ACBRCEP com NodeJs


Ver Solução Respondido por Marcelo Wanderley,
  • Este tópico foi criado há 611 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá a todos, espero que estejam bem.

Estamos enfrentando alguns problemas ao tentar utilizar a biblioteca (Lib) CEP em nosso projeto e ainda não conseguimos utilizá-la corretamente. Já utilizamos outras DLLs em nosso projeto com sucesso, mas estamos enfrentando dificuldades ao tentar testar o da ACBr.

Se alguém puder oferecer ajuda, ficarei imensamente grato.

A inicialização é feita, porém no momento da consulta uma mensagem é mostrada -10

config.ini

[CEP]
WebService=wsRepublicaVirtual
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

-10

Indica que houve erro ao consultar pelo numero do CEP no ACBrCEP.

const ffi = require('ffi-napi');
const path = require('path');

export default class Services {
// @ts-ignore
private lib: any

constructor() {
const dllPath = path.join(__dirname, 'ACBrCEP64.dll');
const configPath = path.join(__dirname, 'config.ini');
this.lib = ffi.Library(dllPath, {
'CEP_Inicializar': ['int', ['string']],
'CEP_BuscarPorCEP': ['int', ['string']],
});
this.lib.CEP_Inicializar(configPath)


}

public async CEP_BuscarPorCEP () {
return this.lib.CEP_BuscarPorCEP('55612-450')
// return __dirname
}

}

Em node nós utilizamos 

Postado
2 horas atrás, lucimauro disse:

Ola!

WebService=wsRepublicaVirtual
por
WebService=03

No seu config.ini

Sem sucesso. Fiz uma atualização no código e mesmo assim nada.

10 horas atrás, Marcelo Wanderley disse:

Olá a todos, espero que estejam bem.

Estamos enfrentando alguns problemas ao tentar utilizar a biblioteca (Lib) CEP em nosso projeto e ainda não conseguimos utilizá-la corretamente. Já utilizamos outras DLLs em nosso projeto com sucesso, mas estamos enfrentando dificuldades ao tentar testar o da ACBr.

Se alguém puder oferecer ajuda, ficarei imensamente grato.

A inicialização é feita, porém no momento da consulta uma mensagem é mostrada -10

config.ini

[CEP]
WebService=wsRepublicaVirtual
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

-10

Indica que houve erro ao consultar pelo numero do CEP no ACBrCEP.

const ffi = require('ffi-napi');
const path = require('path');

export default class Services {
// @ts-ignore
private lib: any

constructor() {
const dllPath = path.join(__dirname, 'ACBrCEP64.dll');
const configPath = path.join(__dirname, 'config.ini');
this.lib = ffi.Library(dllPath, {
'CEP_Inicializar': ['int', ['string']],
'CEP_BuscarPorCEP': ['int', ['string']],
});
this.lib.CEP_Inicializar(configPath)


}

public async CEP_BuscarPorCEP () {
return this.lib.CEP_BuscarPorCEP('55612-450')
// return __dirname
}

}

Em node nós utilizamos 

 

Código atualizado abaixo.

 

import * as ffi from 'ffi-napi';
import * as ref from 'ref-napi';
import * as path from 'path';

export default class Services {
// @ts-ignore
private lib: any

constructor() {
const dllPath = path.join(__dirname, 'ACBrCEP64.dll');
const configPath = path.join(__dirname, 'config.ini');
const stringPtr = ref.refType(ref.types.CString);

this.lib = ffi.Library(dllPath, {
'CEP_Inicializar': ['int', ['string']],
'CEP_BuscarPorCEP': ['int', ['string', stringPtr, 'int']],
});
this.lib.CEP_Inicializar(configPath)


}

public async CEP_BuscarPorCEP () {

// Criar um buffer para armazenar a resposta.
const buffer = Buffer.alloc(256);
const cep = '55612450';
const ret = this.lib.CEP_BuscarPorCEP(cep, buffer, buffer.length);

// Verificar se a chamada foi bem sucedida.
if (ret === 0) {
// Converter o buffer de resposta em uma string e imprimir no console.
const sResposta = ref.readCString(buffer, 0);
console.log(sResposta);
return sResposta;
} else {
throw new Error('CEP_BuscarPorCEP failed with error code ' + ret);
}

// return __dirname
}

}
Postado
40 minutos atrás, Marcelo Wanderley disse:

 

Estamos usando a versão single thread

 

Sempre retornar -10

Não consigo imaginar o que posso fazer para funcionar.

import * as ffi from 'ffi-napi';
import * as ref from 'ref-napi';
import * as path from 'path';

export default class Services {
// @ts-ignore
private lib: any

constructor() {
const dllPath = path.join(__dirname, 'ACBrCEP64.dll');
const stringPtr = ref.refType(ref.types.CString);

this.lib = ffi.Library(dllPath, {
'CEP_Inicializar': ['int', ['string']],
'CEP_Finalizar': ['int', []],
'CEP_BuscarPorCEP': ['int', ['string', stringPtr, 'int']],
});
}

public async CEP_BuscarPorCEP () {
await this.lib.CEP_Inicializar(path.join(__dirname, 'config.ini'))

const buffer = Buffer.alloc(256);
const cep = '55612450';
const ret = this.lib.CEP_BuscarPorCEP(cep, buffer, buffer.length);

this.lib.CEP_Finalizar()

if (ret === 0) {
const sResposta = ref.readCString(buffer, 0);
return sResposta;
} else {
throw new Error('CEP_BuscarPorCEP failed with error code ' + ret);
}
}
}
  • Consultores
Postado
14 horas atrás, Marcelo Wanderley disse:

Sempre retornar -10

você configurou o webservice no ACBrLib.ini ?
https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca8.html

Se tiver os logs, pode anexar por favor..

-10, Indica que houve erro ao consultar pelo numero do CEP no ACBrCEP.
https://acbr.sourceforge.io/ACBrLib/CEP_BuscarPorCEP.html

ACBrLibCEP na versão demonstração, tem algumas limitações.. por exemplo tempo de uso, depois de 30 min, você precisa reiniciar sua aplicação.. pois a Lib tem um timeout de uso.

Postado
1 minuto atrás, antonio.carlos disse:

você configurou o webservice no ACBrLib.ini ?
https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca8.html

Se tiver os logs, pode anexar por favor..

-10, Indica que houve erro ao consultar pelo numero do CEP no ACBrCEP.
https://acbr.sourceforge.io/ACBrLib/CEP_BuscarPorCEP.html

Olá Carlos, Obrigado pela atenção.

Sim, configuramos o config.ini

[CEP]
WebService=15
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Estamos lendo a documentação, já faz alguns dias que estamos tentando fazer funcionar e não conseguimos. Acreditamos que a lib não chega a consultar no webservices, pois a resposta -10 é rapidamente exibida.

Já tentamos com todos os webservices.

Poderia nos auxiliar.

  • Administradores
Postado

Bom dia,

@Marcelo Wanderley por favor anexe os logs solicitados para que seja possivel lhe apoiar.

At.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado
21 minutos atrás, Marcelo Wanderley disse:

Olá Carlos, Obrigado pela atenção.

Sim, configuramos o config.ini

[CEP]
WebService=15
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Estamos lendo a documentação, já faz alguns dias que estamos tentando fazer funcionar e não conseguimos. Acreditamos que a lib não chega a consultar no webservices, pois a resposta -10 é rapidamente exibida.

Já tentamos com todos os webservices.

Poderia nos auxiliar.

Fiz um teste com o programa exemplo em C#, utilizando ACBrLibCEP Demo:
image.png

Funcionando, com wsBrasilAPI.. igual esta configurado ai do seu lado:
[CEP]
WebService=15 -> wsBrasilAPI
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Veja se por um acaso não esta faltando a dlls de dependência OpenSSL.. a mesma fica na pasta Dep do arquivo .zip e essas dlls, precisam ficar junto ao ACBrLibCEP e deve ser na mesma versão, ACBrLibCEP x64, dlls dependência também x64 ou vice-versa.. ACBrLibCEP x86 dls dependência também x86.
image.png

Postado
13 minutos atrás, antonio.carlos disse:

Fiz um teste com o programa exemplo em C#, utilizando ACBrLibCEP Demo:
image.png

Funcionando, com wsBrasilAPI.. igual esta configurado ai do seu lado:
[CEP]
WebService=15 -> wsBrasilAPI
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Veja se por um acaso não esta faltando a dlls de dependência OpenSSL.. a mesma fica na pasta Dep do arquivo .zip e essas dlls, precisam ficar junto ao ACBrLibCEP e deve ser na mesma versão, ACBrLibCEP x64, dlls dependência também x64 ou vice-versa.. ACBrLibCEP x86 dls dependência também x86.
image.png

Coloquei a Dep na pasta e ainda não funcionou.

Como faço para emitir log ?

Trabalhamos com Nodejs usamos a biblioteca ffi-napi para encapsular dll em nossas aplicações. Ela tem suporte a Cdecl ou StdCall. Tentamos utilizar até a versão da Lib MT e nada.

  • Consultores
Postado
2 minutos atrás, Marcelo Wanderley disse:

Como faço para emitir log ?

https://acbr.sourceforge.io/ACBrLib/Geral.html
Log, precisa informar um path em LogPath e o Nivel dele, deve ser = 4 (Paranoico)
 

2 minutos atrás, Marcelo Wanderley disse:

 Cdecl ou StdCall.

Sim, tem suporte, exemplo em C# usamos em cdecl e o exemplo em VB6 stdcall.. 
Lib MT você tem que usar um parâmetro adicional, melhor você focar primeiro em ST (SingleThread), depois veja em MT.
https://acbr.sourceforge.io/ACBrLib/ACBrLibeMultiThread.html

Em nosso SVN, tem exemplo em Node, foram contribuição de colegas..
http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Node.js/

Talvez possa te ajudar em alguma coisa..

Postado (editado)
2 horas atrás, Juliana Tamizou disse:

Bom dia,

@Marcelo Wanderley por favor anexe os logs solicitados para que seja possivel lhe apoiar.

At.

 

Log abaixo.

A libssl-1_1-x64.dll já esta na mesma pasta do ACBrCEP64.dll. Onde deve ser instalado?

16/06/23 11:56:11:284 - LIB_Finalizar
16/06/23 11:56:11:287 - Finalizar
16/06/23 11:57:38:411 - TLibCEPConfig.AplicarConfiguracoes: C:\Users\marce\Desktop\Projeto\Lunar\software\providers\AcbrProvider\config.ini
16/06/23 11:57:38:414 - Travar
16/06/23 11:57:38:416 - TLibCEPConfig.AplicarConfiguracoes - Feito
16/06/23 11:57:38:418 - Destravar
16/06/23 11:57:38:419 - TLibCEPConfig.Ler - Feito
16/06/23 11:57:38:421 - Destravar
16/06/23 11:57:38:424 - LIB_Inicializar( C:\Users\marce\Desktop\Projeto\Lunar\software\providers\AcbrProvider\config.ini,  )
16/06/23 11:57:38:426 -    ACBrLibCEP Demo - 0.0.1.134
16/06/23 11:57:38:429 - CEP_BuscarPorCEP( 55612-450 )
16/06/23 11:57:38:431 - Travar
16/06/23 11:57:38:464 - Destravar
16/06/23 11:57:38:466 -    SetRetorno(-10, Erro HTTP: 500 
Socket Error: 10091 Error loading OpenSSL lib
URL: https://brasilapi.com.br/api/cep/v2/55612450

Resposta HTTP:

)
16/06/23 11:57:38:469 - LIB_Finalizar
16/06/23 11:57:38:472 - Finalizar
 

Editado por Marcelo Wanderley
  • Consultores
Postado
29 minutos atrás, Marcelo Wanderley disse:

16/06/23 11:57:38:466 -    SetRetorno(-10, Erro HTTP: 500 
Socket Error: 10091 Error loading OpenSSL lib
URL: https://brasilapi.com.br/api/cep/v2/55612450

Resposta HTTP:

)

erro esta dizendo que esta faltando dlls dependência, OpenSSL.
você copiou versão x64 ? tem que ser a mesma versão ACBrLib.. 
veja se esta aqui resolve
http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/1.1.1.10/

  • Consultores
Postado

vc está usando a Lib de 64 bits.


Só pra confirmar, sua aplicação é 64bits? Se não for poderia mudar para a lib32 e as dependencias X86...
 

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

Postado
6 minutos atrás, Alexandre de Paula disse:

vc está usando a Lib de 64 bits.


Só pra confirmar, sua aplicação é 64bits? Se não for poderia mudar para a lib32 e as dependencias X86...
 

A nossa aplicação é x64

 

Testamos x86 e um erro é mostrado como abaixo.

 

ERROR (lunar/33764): Dynamic Linking Error: Win32 error 193
    err: {
      "type": "Error",
      "message": "Dynamic Linking Error: Win32 error 193",
      "stack":
          Error: Dynamic Linking Error: Win32 error 193
 

  • Curtir 1
Postado
2 horas atrás, antonio.carlos disse:

erro esta dizendo que esta faltando dlls dependência, OpenSSL.
você copiou versão x64 ? tem que ser a mesma versão ACBrLib.. 
veja se esta aqui resolve
http://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/1.1.1.10/

É necessário estar 

 

4 horas atrás, antonio.carlos disse:

Fiz um teste com o programa exemplo em C#, utilizando ACBrLibCEP Demo:
image.png

Funcionando, com wsBrasilAPI.. igual esta configurado ai do seu lado:
[CEP]
WebService=15 -> wsBrasilAPI
ChaveAcesso=
Usuario=
Senha=
PesquisarIBGE=0

Veja se por um acaso não esta faltando a dlls de dependência OpenSSL.. a mesma fica na pasta Dep do arquivo .zip e essas dlls, precisam ficar junto ao ACBrLibCEP e deve ser na mesma versão, ACBrLibCEP x64, dlls dependência também x64 ou vice-versa.. ACBrLibCEP x86 dls dependência também x86.
image.png

 

consegue testar usando x64?

 

 

Postado

 

consegui fazer carregar o OPENssl, porém agora esta mostrando outro erro.

Segue o log abaixo.

16/06/23 17:26:08:629 - TLibCEPConfig.AplicarConfiguracoes: C:\Users\sistemas\Desktop\Projeto\qualinfo\testeACBR\config.ini
16/06/23 17:26:08:629 - Travar
16/06/23 17:26:08:638 - TLibCEPConfig.AplicarConfiguracoes - Feito
16/06/23 17:26:08:638 - Destravar
16/06/23 17:26:08:646 - TLibCEPConfig.Ler - Feito
16/06/23 17:26:08:650 - Destravar
16/06/23 17:26:08:650 - LIB_Inicializar( C:\Users\sistemas\Desktop\Projeto\qualinfo\testeACBR\config.ini,  )
16/06/23 17:26:08:654 -    ACBrLibCEP Demo - 0.0.1.134
16/06/23 17:26:08:662 - CEP_BuscarPorCEP( 55612450 )
16/06/23 17:26:08:662 - Travar
16/06/23 17:26:09:201 - Destravar
16/06/23 17:26:09:201 -    SetRetorno(-10, Access violation)
16/06/23 17:26:09:201 - LIB_Finalizar
16/06/23 17:26:09:209 - Finalizar
  • Este tópico foi criado há 611 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...