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
Como saber a versão do Java usado por um Serviço Oobj DFe?
Visualizado 170 vezes desde 19/09/2016
Conheça 3 ferramentas gratuitas para comparar texto no Windows
Visualizado 163 vezes desde 28/11/2016
Serviço PostgreSQL suspenso no Windows 10 ou Windows Server 2012 - Como resolver?
Visualizado 145 vezes desde 17/01/2017
Como configurar o SAT ELGIN no Windows 10?
Visualizado 217 vezes desde 07/02/2017
Arquivo recebido com o Status Arquivo: Falha Estrutural
Visualizado 761 vezes desde 07/05/2015
Como ajustar o horário de verão no Timezone do Java?
Visualizado 4736 vezes desde 08/05/2015
Como configurar a Variável de Ambiente JAVA_HOME Windows?
Visualizado 2065 vezes desde 11/05/2015
Como liberar FTP Passivo no Windows?
Visualizado 4455 vezes desde 11/05/2015
Como configurar uma impressora para impressão automática na modalidade InHouse
Visualizado 846 vezes desde 12/05/2015
Falha na impressão automática - Printer is not accepting job
Visualizado 826 vezes desde 20/05/2015
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.