Falha na impressão automática - Invalid name of PrintService

Problema

Ao realizar uma impressão é exibido nos logs a seguinte falha: "Invalid name of PrintService".  A Aplicação Oobj não consegue enviar o documento para o Spooler de Impressão, pois a impressora não é identificada.

 

Exemplo de log:

2709 15:40:46,238 [Thread-65] WARN  ConsumidorImpressao - Falha no servico de impressao: 
Erro ao imprimir o DAME 26130903437057000140550010000105581662203739 : java.awt.print.PrinterException: 
Invalid name of PrintService.. ME: 26130903437057000140550010000105581662203739 br.com.oobj.me.impressao.exception.ImpressaoException: 
Erro ao imprimir o DAME 26130903437057000140550010000105581662203739 : java.awt.print.PrinterException: Invalid name of PrintService.
at br.com.oobj.me.impressao.ServicoImpressao.processar(ServicoImpressao.java:237)
at br.com.oobj.me.impressao.ConsumidorImpressao.novaMensagem(ConsumidorImpressao.java:99)
at br.com.oobj.util.fila.ConsumidorNotificante.run(ConsumidorNotificante.java:240)
at br.com.oobj.me.impressao.ConsumidorImpressao.run(ConsumidorImpressao.java:74)
Caused by: net.sf.jasperreports.engine.JRException: java.awt.print.PrinterException: Invalid name of PrintService.
at net.sf.jasperreports.engine.export.JRPrintServiceExporter.exportReport(JRPrintServiceExporter.java:156)
at gov.sefaz.util.Impressora.imprimirJasperPrint(Impressora.java:249)
at gov.sefaz.util.Impressora.imprimirJasperPrint(Impressora.java:187)
at gov.sefaz.util.Impressora.imprimirJasperPrint(Impressora.java:192)
at br.com.oobj.me.impressao.ServicoImpressao.processar(ServicoImpressao.java:220)
... 3 more
Caused by: java.awt.print.PrinterException: Invalid name of PrintService.
at sun.awt.windows.WPrinterJob.setNativePrintService(Native Method)
at sun.awt.windows.WPrinterJob.setPrintService(Unknown Source)
at net.sf.jasperreports.engine.export.JRPrintServiceExporter.exportReport(JRPrintServiceExporter.java:152)
... 7 more

 

Em todos os casos, a ocorrência do problema foi ocasionada por falta de permissão. A impressora configurada como padrão na Aplicação Oobj, apesar de instalada no servidor, muitas vezes está inacessível ao usuário que executa o serviço.


Solução/Procedimento

Existem 3 possíveis soluções para o problema:

1 - Dar a impressora configurada na Aplicação Oobj, permissão a "Todos" usuários;

2 - Caso o procedimento acima não tenha dado certo, é possível configurar o serviço de impressão para iniciar com um usuário que tenha permissão nas impressoras;

Observação

Normalmente o problema está associado a impressoras mapeadas em rede. Quando houver uma impressora em rede e este problema for identificado, pode-se tentar a terceira solução.

 

3 - Podemos ainda, tentar uma terceira alternativa que é criar usuários idênticos nos 2 servidores. Não podemos dar garantias ao cliente de que isso resolverá o problema, mas vale a pena fazer o teste pois em muitos casos isso resolve o problema.

 

Como será feito o procedimento na terceira solução?  

  1. Na máquina em que a impressora está conectada fisicamente, criar um usuário local e dar permissão para esse usuário acessar a impressora - se necessário. Sugerimos o uso do nome: "nfe";

  2. Na máquina em que o Motor ou Motor de Impressão está instalado, fazer o mesmo procedimento (criar um usuário local com o mesmo nome e a mesma senha);

  3. Fazer logon nesse servidor do Motor ou Motor de Impressão e instalar a impressora para esse usuário;

  4. Configurar o serviço para subir com esse usuário criado.

 

O que acontece nesse caso, é que o Motor de Impressão sobe com um usuário e senha. Quando ele envia a mensagem para o Spooler com essas credenciais, elas coincidem com as mesmas credenciais daquele usuário local, que também existe no servidor da impressora. Como essas credenciais são idênticas, a impressora deve aceitar a solicitação.

Observação

É importante que essas senhas não sejam alteradas no futuro. Deve-se orientar os responsáveis pela infraestrutura, pois alguns servidores possuem políticas para expiração de senhas.

 

Deve ser levado em conta que a disponibilidade das impressoras nos servidores é inteiramente responsabilidade da infraestrutura da empresa cliente. Caso nenhum dos procedimentos sugeridos seja corretiva, o departamento de infraestrutura deverá analisar o problema.

 

Referência

Sem referências

5 (1)
Avaliação do Artigo (1 Votos)
Avaliar esse artigo
Anexos
Não há anexos para este artigo.
Artigos Relacionados RSS Feed
Comentários
Nome
Email
Código de Segurança Security Code
Não há comentários para este artigo. Seja o primeiro a postar um comentário.