Ir para conteúdo
  • Cadastre-se

dev botao

Problema com a LibNFSe em LINUX


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

Recommended Posts

  • Membros Pro
Postado

Estou com uma dificuldade em funcionamento da minha aplicação pra geração de NFS-e com a NFSeLib em servidor Linux, Debian 11 (bullseyes)

desenvolvi em JAVA
testei a API toda em Windows e funciona tudo certo, mas quando passo pra Linux ele chega no método, e simplesmente não gera,
ele carrega o INI de envio com o método 

acbrNFSe.carregarIni()
 

Porém, ao utilizar o método 

acbrNFSe.emitir()

ele me rotorna "XMLNode não pode ser nulo!" e não gera log nível 4 nem nada, e também não me gera erro no console!

em WINDOWS funciona e no LINUX não, alguém saberia o que pode estar acontecendo?

ACBrLib.ini NFSe22_1.ini

  • Consultores
Postado

Boa tarde!

Além da LibNFSe, também é necessário a OpenSSL e a LibXML para o correto funcionamento.

Quando você faz o download é distribuído as dlls na pasta de dependência para uso no Windows.

Para Linux, você precisa fazer o processo equivalente para instalar ambas.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

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
14 minutos atrás, Ricardo Isono disse:


porém, você quer dizer que precisa de arquivos ".so" referente aos mesmos?

os arquivos .so são versao da acbrlibnfse para linux.
entao acbrlibNFse.dll é windows e AcbrlibNFse.so é para linux

chegou a ver estas particularidades de distribuição para linux
https://acbr.sourceforge.io/ACBrLib/ComoInstalarDistribuir.html

  • Curtir 1
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

  • Membros Pro
Postado

eu não havia dado uma olhada, mas eu havia instalado todos esses componentes, pois achei alguns problemas e acabei achando aqui no forúm,
rodei o procedimento do manual agora, e entrou no Xauthority, e eu não sei o que informar a seguir, fora isso tenho reparado que o Gtk, não está permitindo a API continuar quando tenta ativar a Lib, eu encontrei alguns comando aqui no forum a respeito, e rodei o "export DISPLAY", porém vira e mexe ele acaba voltando esse problema e eu sempre tenho que ficar rodando novamente, o que eu posso fazer pra acertar?

  • Membros Pro
Postado

como eu disse, eu estou usando Debian 11 (bullseye), ja conferi e todas as dependencias estão instaladas, e mesmo assim ainda tenho um log de tomcat "gtK-Warning cannot open display" e então nada mais funciona, quando não da esse erro, ele vai até o carregamento do arquivo ini de NFSe, carrega mas não gera o xml e me retorna "XMLNode não pode ser nulo"

 

  • Consultores
Postado

tem permissão de leitura e escrita na pasta ?
e tbm na pasta onde será criado o log?
/opt/tomcat/bin/DocsNFSe/21845778000171/Logs/

neste servidor tem ambiente gráfico ?
para efeito de teste, tentou executar como root ?
 

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

  • Membros Pro
Postado

Bom dia Ricardo,


Se me permite, tenho um docker em linux, no qual tive várias adaptações para rodar o ACBRLIBNFSe.

Caso possa ajudar, segue meu arquivo DockerFIle com os comandos que executo, e o arquivo ACBRNFSe que importa o arquivo ".so"

Também, já tem a tratativa para funcionar o PDF (impressão).

Dockerfile ACBrNFSe.java

  • Curtir 4
  • Membros Pro
Postado
4 horas atrás, LeonardoRocha disse:

Bom dia Ricardo,


Se me permite, tenho um docker em linux, no qual tive várias adaptações para rodar o ACBRLIBNFSe.

Caso possa ajudar, segue meu arquivo DockerFIle com os comandos que executo, e o arquivo ACBRNFSe que importa o arquivo ".so"

Também, já tem a tratativa para funcionar o PDF (impressão).

Dockerfile 1.5 kB · 2 downloads ACBrNFSe.java 31.2 kB · 0 downloads

eu refiz meu servidor, para conferir passo a passo e ver se eu não esqueci de nada,

eu estou utilizando Debian 11,

não estou utilizando docker,

instalei dependência por dependência manualmente, seguindo o manual citado acima,

adicionei a libacbr64.so na pasta /usr/lib64

utilizo o tomcat10 para servir minha api

estou executando pelo root, inclusive é o unico usuário do server

o servidor não possui suporte gráfico


eu adicionei alguns logs de console para ver até onde a api está chegando, ela da problema no método "acbrNFSe.configGravarValor()" pois eu faço algumas configurações a partir do código na API, o estranho é que o meu "exception.getMessage()" me retorna "5" e mais nada, imaginei que poderia ser alguma restrição no diretório onde eu crio o ini de configuração, por desencargo atribui permissão máxima e nada mudou, alguma ideia?

obs,: a mesma API em windows funciona perfeitamente!

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

Boa tarde,

Se não possui interface gráfica, precisa de um emulador.

Veja o tópico a seguir.

 

 

mas não acusou problema com o gtk ou o Xvfb ele está carregando a minha variável "private ACBrNFSe acbrNFSe;" que era onde acusava o Warning como no exemplo

não é esse o problema

  • Consultores
Postado

Só lembrando se não existe modo gráfico e não for executado em modo virtualizado Xvfb, vai dar erro, pois tem dependências gráficas a serem emuladas.
a acbrlibnfse.so vc salvou em /lib64 ?
no seu acbrlib.ini , no path ele nao chega gerar o log? mesmo executando como administrador?
consegue gerar um exemplo basico q eu consiga testar em meu ambiente?



 

  • Curtir 2
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

  • Membros Pro
Postado
Em 01/03/2024 at 17:54, Daniel InfoCotidiano disse:

Só lembrando se não existe modo gráfico e não for executado em modo virtualizado Xvfb, vai dar erro, pois tem dependências gráficas a serem emuladas.
a acbrlibnfse.so vc salvou em /lib64 ?
no seu acbrlib.ini , no path ele nao chega gerar o log? mesmo executando como administrador?
consegue gerar um exemplo basico q eu consiga testar em meu ambiente?



 

não, ele não gera nenhum log do componente, da lib no caso.

configurei um ambiente linux para poder fazer o Debug, me gerou um log de erro do java, ao tentar iniciar a lib, segue anexo

hs_err_pid16287.log

  • Consultores
Postado
5 minutos atrás, Ricardo Isono disse:

configurei um ambiente linux para poder fazer o Debug, me gerou um log de erro do java, ao tentar iniciar a lib, segue anexo

Este novo ambiente que vc criou , tem ambiente gráfico?
caso positivo, pode por favor testar com este exemplo http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Java/NFSe/
 

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

  • Consultores
Postado

@Ricardo Isono
Acabei de compilar a lib e está funcionando em meu ambiente.
O que tenho instalado: (só que eu nao adicionei ao sources.list, eu instalei um a um)
image.png

O Exemplo que estou executando é 64 bits e MT (Multithread), então estou usando a lib que fica dentro da pasta MT/Linux.
Copiei a lib para /lib64

Screenshot_151.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

  • Consultores
Postado

@Ricardo Isono Bom dia !
Configure no ACBrLib.INI os paths para uma pasta de sua preferência e deixe esta pasta com permissão de escrita e gravação.
Esqueci de comentar isso no post anterior.
Veja se ele não criou um log em:

Environment Variables:
PATH=/usr/local/bin:
/usr/bin:/bin:
/usr/local/games:
/usr/games

Notei tbm no seu log esta msg onde o java pede p vc tentar executar com uns parametros
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

  • Membros Pro
Postado
Em 08/03/2024 at 08:13, Daniel InfoCotidiano disse:

@Ricardo Isono Bom dia !
Configure no ACBrLib.INI os paths para uma pasta de sua preferência e deixe esta pasta com permissão de escrita e gravação.
Esqueci de comentar isso no post anterior.
Veja se ele não criou um log em:

Environment Variables:
PATH=/usr/local/bin:
/usr/bin:/bin:
/usr/local/games:
/usr/games

Notei tbm no seu log esta msg onde o java pede p vc tentar executar com uns parametros
image.png

esse problema eu resolvi, era o motor gráfico com problema,

agora voltou ao problema do "Node XML não pode ser nulo", estou enviando os logs

ACBrLibNFSe-20240314.log

(só adicionando)

libxml2 e openssl estão instalados

e o "ln -s libxml2.so.2 libxml2.so" foi rodado

 

  • Membros Pro
  • Solution
Postado

consegui...

O link com a libxml2 que se criou com o comando "ln -s libxml2.so.2 libxml2.so" (como sugeri o manual), ficou quebrado, então fui até a raiz da instalação "/usr/lib/x86_64-linux-gnu/" localizei a dependência instalada, no meu caso, "libxml2.so.2.9.10" e refiz o link, "ln -s libxml2.so.2.9.10 libxml2.so", daí ele conseguiu localizar e rodar.

quanto ao projeto em si, eu estou distribuindo com Spring + Maven, em um servidor VPS com tomcat, então pra funcionar com o emulador gráfico eu precisei adicionar um execution junto aos plugins, no pom.xml, segue adição:

             <executions>
                    <execution>
                        <id>shutdown-xvfb-startup</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo message="Ending (startup) xvfb ..." />
                                <exec executable="pkill">
                                    <arg value="Xvfb" />
                                </exec>
                            </tasks>
                        </configuration>
                    </execution>
                    <execution>
                        <id>start-xvfb</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo message="Starting xvfb ..." />
                                <exec executable="Xvfb" spawn="true">
                                    <arg value=":2" />
                                </exec>
                            </tasks>
                        </configuration>
                    </execution>
                    <execution>
                        <id>shutdown-xvfb-shutdown</id>
                        <phase>test</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo message="Ending (shutdown) xvfb ..." />
                                <exec executable="pkill">
                                    <arg value="Xvfb" />
                                </exec>
                            </tasks>
                        </configuration>
                    </execution>
                </executions>

aí ficou ok.

No mais, tirando esses dois pontos citados, segui conforme o manual.

Obrigado.

  • Curtir 2
  • Este tópico foi criado há 253 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.