Base de conhecimento

Erro no Pós-processador SAP ao tentar processar arquivo de retorno

5 minutos de leitura
Copiar

Problema

O serviço do Pós-processador SAP não funciona corretamente ao tentar processar um arquivo de retorno e no log são apresentado algumas exceções.

 

Solução/Procedimento

 Ao tentar iniciar o serviço do Pós-processador SAP, ocorre o seguinte erro “Cuidado, o offset do Timezone na maquina local parece estar incorreto“.

1207 16:03:40,648 [PosProcessadorRetornoMain-3] DEBUG Data       - <strong>Timezone offset: -8</strong>
1207 16:03:40,659 [PosProcessadorRetornoMain-3] ERROR Data       - <strong>Cuidado, o offset do Timezone na maquina local parece estar incorreto: -8. Assumindo '-3'</strong>
java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
	at java.lang.ClassLoader.loadLibrary(Unknown Source)
	at java.lang.Runtime.loadLibrary0(Unknown Source)
	at java.lang.System.loadLibrary(Unknown Source)
	at com.sap.conn.jco.rt.DefaultJCoRuntime.loadLibrary(DefaultJCoRuntime.java:441)
	at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:307)
	at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:969)
	at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:955)
	at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:43)
	at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:261)
	at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:200)
	at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:73)
	at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at com.sap.conn.jco.JCo.createJCo(JCo.java:52)
	at com.sap.conn.jco.JCo.<clinit>(JCo.java:26)
	at com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:61)
	at br.com.oobj.util.sap.RetornoNFeSAP.J_1B_NFE_XML_IN(RetornoNFeSAP.java:135)
	at br.com.oobj.util.sap.RetornoNFeSAP.registrarRetornoEnvio(RetornoNFeSAP.java:58)
	at br.com.oobj.util.sap.SAPR3RFCNFeAdapter.registrarRetornoEnvio(SAPR3RFCNFeAdapter.java:95)
	at br.com.oobj.processador.sap.PosProcessadorRetornoSAP.processarRetornoEnvio(PosProcessadorRetornoSAP.java:59)
	at br.com.oobj.processador.AbstractPosProcessadorRetorno.processar(AbstractPosProcessadorRetorno.java:134)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.processar(ProcessadorDiretorioEntradaSaidaDaemon.java:830)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.varrerDiretorioUsingStrategy(ProcessadorDiretorioEntradaSaidaDaemon.java:799)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.iniciarVarreduraInfinitaPastaEntrada(ProcessadorDiretorioEntradaSaidaDaemon.java:1042)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.run(ProcessadorDiretorioEntradaSaidaDaemon.java:602)
	at java.lang.Thread.run(Unknown Source)

Para corrigir o problema, acesse as configurações de data e hora do sistema operacional e altere o fuso horário para UTC-03:00 – Brasília.

Se não for possível alterar o fuso horário do servidor, uma alternativa é setar o time zone diretamente no serviço.

Para setar o Timezone, basta adicionar o seguinte parâmetro no .conf do serviço em “Java Options”

-Duser.Timezone=GMT-2

 

Ao tentar processar um arquivo de retorno ocorre a seguinte execeção.

Exception in thread "PosProcessadorRetornoMain-3" Exception in thread "PosProcessadorRetornoMain-1" java.lang.ExceptionInInitializerError: Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
	at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:212)
	at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:73)
	at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at com.sap.conn.jco.JCo.createJCo(JCo.java:52)
	at com.sap.conn.jco.JCo.<clinit>(JCo.java:26)
	at com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:61)
	at br.com.oobj.util.sap.RetornoNFeSAP.J_1B_NFE_XML_IN(RetornoNFeSAP.java:135)
	at br.com.oobj.util.sap.RetornoNFeSAP.registrarRetornoEnvio(RetornoNFeSAP.java:58)
	at br.com.oobj.util.sap.SAPR3RFCNFeAdapter.registrarRetornoEnvio(SAPR3RFCNFeAdapter.java:95)
	at br.com.oobj.processador.sap.PosProcessadorRetornoSAP.processarRetornoEnvio(PosProcessadorRetornoSAP.java:59)
	at br.com.oobj.processador.AbstractPosProcessadorRetorno.processar(AbstractPosProcessadorRetorno.java:134)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.processar(ProcessadorDiretorioEntradaSaidaDaemon.java:830)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.varrerDiretorioUsingStrategy(ProcessadorDiretorioEntradaSaidaDaemon.java:799)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.iniciarVarreduraInfinitaPastaEntrada(ProcessadorDiretorioEntradaSaidaDaemon.java:1042)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.run(ProcessadorDiretorioEntradaSaidaDaemon.java:602)
	at java.lang.Thread.run(Unknown Source)
java.lang.NoClassDefFoundError: <strong>Could not initialize class com.sap.conn.jco.JCo</strong>
	at com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:61)
	at br.com.oobj.util.sap.RetornoNFeSAP.J_1B_NFE_XML_IN(RetornoNFeSAP.java:135)
	at br.com.oobj.util.sap.RetornoNFeSAP.registrarRetornoEnvio(RetornoNFeSAP.java:58)
	at br.com.oobj.util.sap.SAPR3RFCNFeAdapter.registrarRetornoEnvio(SAPR3RFCNFeAdapter.java:95)
	at br.com.oobj.processador.sap.PosProcessadorRetornoSAP.processarRetornoEnvio(PosProcessadorRetornoSAP.java:59)
	at br.com.oobj.processador.AbstractPosProcessadorRetorno.processar(AbstractPosProcessadorRetorno.java:134)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.processar(ProcessadorDiretorioEntradaSaidaDaemon.java:830)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.varrerDiretorioUsingStrategy(ProcessadorDiretorioEntradaSaidaDaemon.java:799)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.iniciarVarreduraInfinitaPastaEntrada(ProcessadorDiretorioEntradaSaidaDaemon.java:1042)
	at gov.sefaz.util.pdes.ProcessadorDiretorioEntradaSaidaDaemon.run(ProcessadorDiretorioEntradaSaidaDaemon.java:602)
	at java.lang.Thread.run(Unknown Source)

 

Esse problema ocorre quando a dll do SAP não está mapeada na pasta bin do serviço.

Para corrigir o serviço basta executar o seguinte procedimento.

1 – Copie a dll sapjco3.dll

  • C:\Oobj\Aplicativos\Oobj\oobj-pos-processador-sap\lib\x64
  • Copie a dll sapjco3.dll que está na pasta para o seguinte diretório: C:\Oobj\Aplicativos\Oobj\oobj-pos-processador-sap\bin

 

Em seguida reinicie o serviço e mande reentregar o retorno novamente.

Não encontrou o que procurava?