Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3758 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Saudações.
 
Estou com problema ao atualizar o md5 da lista de arquivos MD5 no arquivo criptografado.
 
Seguinte, gerei o par de chaves através do demo do acbr;
Gerei o arquivo criptografado com os dados da impressora fiscal e salvei o arquivo através do componente ACBrAAC, até então tudo bem, utilizei a chave privada gerada pelo componente ACBrEAD através do método acbrAAC.setKey("minha chave ") no mesmo formato gerado pelo componente, inclusive com as quebras de linha;

 

O Arquivo foi salvo com sucesso, quando mando carregar o arquivo com o comando acbrAAC.abrirArquivo(), o arquivo é carregado com as informações que foi gravado.

 

Até aqui tudo bem, o problema ocorre que após eu gerar a lista de arquivos md5, salvar o documento, gerar o md5 da lista, eu utilizo o comando acbrAac.atualizarMD5(md5), ocorre a seguinte exception: 

 
jACBrFramework.ACBrException: Chave não informada ou Evento ACBrAAC.OnGetChave não programado

 

porém eu setei a chave no acbrAac, como eu fiz na geração do arquivo.

 

Alguém tem alguma sugestão?

 

Att

Editado por CELL Corporação Tecnológic

Geovani Nicolau de Paula

Cell Corporação Tecnológica

Postado

Boa tarde.

 

Tive um problema parecido e resolvi setando a chave novamente no componente. Basicamente tenho o seguinte:

 

1) Três componentes ACBrECF, ACBrEAD e ACBrAAC;

2) Referencio os componentes ACBrEAD e ACBrAAC, no componente ACBrECF;

3) Na hora da chamada eu recrio o listener das chaves privadas;

 

Ainda não consegui detectar, mas em alguns momentos o handler não é acionado. Como resolveu a situação fui para outros pontos que precisava resolver na app. Penso que seja algo vinculo a lock no threads e o JNA não aciona ou algo do tipo.

 

Att.,

Postado

jmsandy, nesse meio tempo entre o post e a sua resposta, cheguei exatamente ao que você falou acima, porém achei que fosse algo a mais, estou tentando vasculhar o projeto em delph, porém, meu conhecimento nessa linguagem é muito pouco.

 

 

Por hora vou fazer como você disse, mas acredito que isso seja um problema a ser observado e corrigido.

 

Att

Geovani Nicolau de Paula

Cell Corporação Tecnológica

Postado

jmsandy, nesse meio tempo entre o post e a sua resposta, cheguei exatamente ao que você falou acima, porém achei que fosse algo a mais, estou tentando vasculhar o projeto em delph, porém, meu conhecimento nessa linguagem é muito pouco.

 

 

Por hora vou fazer como você disse, mas acredito que isso seja um problema a ser observado e corrigido.

 

Att

Tanto em Delphi quanto em .NET isso acaba sendo mais tranquilo. O que complica nestes casos é o acesso via JNA por algum motivo o handler não é acionado, talvez pela gerencia de threads, synchronized, etc. Não tenho uma ideia fixa sobre isso.

 

Mas com certeza é um ponto que precisa ser verificado.

 

Att.,

Postado

Tanto em Delphi quanto em .NET isso acaba sendo mais tranquilo. O que complica nestes casos é o acesso via JNA por algum motivo o handler não é acionado, talvez pela gerencia de threads, synchronized, etc. Não tenho uma ideia fixa sobre isso.

 

Mas com certeza é um ponto que precisa ser verificado.

 

Att.,

 

Bom dia jmsandy, seguinte, tenho associado ao meu ACBrECF um ACBrEAD e um ACBrAAC, alterei para adicionar novante a chave no ACBrAAC antes de atualizar o md5 da lista de arquivos, porém todo o item que eu realizo a venda ele emite a mesma mensagem, pelo que percebi ele ele imprime na impressora, mas não consegue atualizar o grande total no arquivo criptografado, tem alguma ideia de como resolver essa questão?

 

Att.

Geovani Nicolau de Paula

Cell Corporação Tecnológica

Postado

Boa tarde CELL Corporação Tecnológic,

 

Estamos pesquisando para ver se conseguimos resolver estes problema ao acionar os listeners. O que fiz aqui, como paliativo foi o seguinte:

 

"Tenho uma classe que encapsula os componentes do ACBr e esta classe é Singleton, que retorna uma instância que obtenho os componentes. Sempre que aciona o getInstace() já seto as chaves novamente nos componentes, como os componentes são únicos dentro do ciclo de vida da jvm, acaba redundando as chaves, mas este erro desaparece".

 

O ideal é descobrir como resolver este problema de vez, estamos olhando como resolver, mas da forma acima é possível contornar.

 

Ps.: Não sei se você tem alguma operação que faz uso de multithread, para controlar o acesso concorrente a impressora, coloquei nessa classe singleton um conceito de semáforo nos componentes e resolveu problemas de acesso concorrente aos recursos da ECF.

 

Att.,

Postado

Boa tarde CELL Corporação Tecnológic,

 

Estamos pesquisando para ver se conseguimos resolver estes problema ao acionar os listeners. O que fiz aqui, como paliativo foi o seguinte:

 

"Tenho uma classe que encapsula os componentes do ACBr e esta classe é Singleton, que retorna uma instância que obtenho os componentes. Sempre que aciona o getInstace() já seto as chaves novamente nos componentes, como os componentes são únicos dentro do ciclo de vida da jvm, acaba redundando as chaves, mas este erro desaparece".

 

O ideal é descobrir como resolver este problema de vez, estamos olhando como resolver, mas da forma acima é possível contornar.

 

Ps.: Não sei se você tem alguma operação que faz uso de multithread, para controlar o acesso concorrente a impressora, coloquei nessa classe singleton um conceito de semáforo nos componentes e resolveu problemas de acesso concorrente aos recursos da ECF.

 

Att.,

Entendi, vou testar aqui.

 

Att

Geovani Nicolau de Paula

Cell Corporação Tecnológica

Postado

Boa tarde CELL Corporação Tecnológic,

 

Estamos pesquisando para ver se conseguimos resolver estes problema ao acionar os listeners. O que fiz aqui, como paliativo foi o seguinte:

 

"Tenho uma classe que encapsula os componentes do ACBr e esta classe é Singleton, que retorna uma instância que obtenho os componentes. Sempre que aciona o getInstace() já seto as chaves novamente nos componentes, como os componentes são únicos dentro do ciclo de vida da jvm, acaba redundando as chaves, mas este erro desaparece".

 

O ideal é descobrir como resolver este problema de vez, estamos olhando como resolver, mas da forma acima é possível contornar.

 

Ps.: Não sei se você tem alguma operação que faz uso de multithread, para controlar o acesso concorrente a impressora, coloquei nessa classe singleton um conceito de semáforo nos componentes e resolveu problemas de acesso concorrente aos recursos da ECF.

 

Att.,

jmsandy, fiz como você orientou e parou de ocorrer os erros de chave.

 

Vou manter assim até que seja realizado a correção no acbr, por enquanto muito obrigado por mais essa ajuda.

 

Att

Geovani Nicolau de Paula

Cell Corporação Tecnológica

  • Este tópico foi criado há 3758 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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