Ir para conteúdo
  • Cadastre-se

dev botao

Integração com Genexus


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

Recommended Posts

  • Membros Pro
Postado

Boa noite!

Sou desenvolvedor Genexus desde 1997 e utilizo o ACBrMonitorPlus já há uns 6 anos pelo menos, mas agora estou desenvolvendo um projeto de integração do ACBrLib com o Genexus e quando estiver concluído será disponibilizado para toda comunidade de desenvolvedores GX do Brasil, que diga-se de passagem é bem grande, e com isso espero colaborar aumentando a quantidade clientes de SAC do ACBr. 

No momento estou trabalhando na integração via Java e assim que esta estiver pronta vou liberar também para C# (.Net e .Net Core), abrangendo assim as linguagens de retaguarda do ambiente WEB mantido pelo Genexus. Eu consegui importar todas as classes para dentro da ferramenta e consegui compilar sem erros um pequeno modelo de teste, porém, na execução ocorre um erro que pelo que eu consegui identificar, já que não sou expert em Java, deve ser porque a classe não achou a DLL. No caso estou testando com a ACBrLibNfe. A aplicação roda em ambiente WEB Java sob Tomcat, já estou a uns 2 dias tentando achar o local correto para colocar a DLL, mas até agora sem sucesso. Você teria alguma sugestão? Eu já coloquei na System32, junto com as classes do aplicativo, dentro da pasta "lib" da aplicação no Webapps, na raiz do Tomcat, na raiz da aplicação. Pior que os logs não são claros, eles apenas acusam o erro definido na exception, sem informar nenhum código de erro ou uma mensagem relativa ao que ele não está encontrando.

Se tiver alguma ideia fico agradecido.

  • Curtir 1
Postado

O Java costuma ler as dll do Path do sistema e do path do java JRE.
Primeiro precisamos saber qual a versão do JRE está sendo usado, x86 ou x64, depois precisamos copiar as dll corretas nas pastas do windows ou JRE.

  • Curtir 1

 

  • Membros Pro
Postado

Aqui nos meus testes estou usando Windows 10 64bits e JRE 64bits. Mas também tenho intensão de testar em ambiente Linux, mas primeiro preciso fazer funcionar em Windows.

Eu já tentei colocar na pasta System32 mas ele não achou. Acho que preciso revisar a documentação do Tomcat pra ver como ele pega o caminho do JRE, se ele utiliza uma variável de ambiente como CLASSPATH ou se isso fica dentro do arquivo web.xml da aplicação.

  • Consultores
Postado
43 minutos atrás, carloslk disse:

Aqui nos meus testes estou usando Windows 10 64bits e JRE 64bits. Mas também tenho intensão de testar em ambiente Linux, mas primeiro preciso fazer funcionar em Windows.

Eu já tentei colocar na pasta System32 mas ele não achou.

Sua aplicação é 64 bits? Se for, como o Windows é 64 bits o local correto é a System32. Caso contrário o local correto é a pasta SYSWOW.

Na verdade sempre aconselhamos colocar dlls na mesma pasta do executável. Assim, ele não precisa procurar em outros lugares causando confusão.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Membros Pro
Postado

Sim a aplicação é 64bits, mas eu já tentei colocar na pasta System32 e não funcionou. Outra coisa minha aplicação é WEB Java e roda sob o Tomcat, eu tentei colocar as DLLs na mesma pasta onde ficam os JARs, também não funcionou.

Postado

Colocou a dll e suas dependências dentro da pasta System32 ?

Dentro do Netbeans eu coloco um path com dependência para localizar a lib, teria como fazer isso por config ou código ?
Tem que ver como o Tomcat faz o path do exe, talvez colocar no path do JRE ou do exe do Apache/Tomcat resolva.
 

  • Curtir 1

 

  • Membros Pro
Postado

Oi Rafael, na verdade colocar no System32 eu tentei mas não resolveu. Hoje vou tentar localizar no documentação do Tomcat como funciona o Classpath dele. Conforme eu for evoluindo eu aviso.

  • Membros Pro
Postado

Rafael outra coisa, estou tentando executar a Demo em Java usando Netbeans e esta dando o erro abaixo:
 

run:
out 15, 2019 10:05:15 AM com.acbr.nfe.demo.FrmMain btnStatusServActionPerformed
GRAVE: null
java.lang.Exception: Erro ao salvar.
Unable to open file "C:\Program Files\Java\jdk1.8.0_221\bin\Docs\20191015100515-ped-sta.xml"
    at com.acbr.ACBrLibBase.checkResult(ACBrLibBase.java:70)
    at com.acbr.nfe.ACBrNFe.statusServico(ACBrNFe.java:169)
    at com.acbr.nfe.demo.FrmMain.btnStatusServActionPerformed(FrmMain.java:815)
    at com.acbr.nfe.demo.FrmMain.access$900(FrmMain.java:24)
    at com.acbr.nfe.demo.FrmMain$10.actionPerformed(FrmMain.java:662)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6539)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6304)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:733)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

BUILD SUCCESSFUL (total time: 29 minutes 38 seconds)
 

Sabe me dizer porque ele está tentando abrir o XML da solicitação de status do serviço na pasta "C:\Program Files\Java\jdk1.8.0_221\bin\Docs\"? Existe alguma configuração para determinar esse local?

  • Membros Pro
Postado

Rafael bom dia,

 

Me ocorreu uma coisa agora, quando eu utilizo as classes de alto nível eu preciso usar o método Inicializar() ou ele fica implícito no método da classe de alto nível.

  • Membros Pro
Postado

Mais uma coisa, existe dependência entre as DLLs? Exemplo para usar ACBrNfe64.dll preciso ter também na mesma pasta ACBrMail64.dll?

×
×
  • 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.