Imprimindo diretamente via Java

Boa tarde a todos,

Estou precisando imprimir direto em uma impressora usando o método abaixo, o método cria um job de impressão, a luz da impressora fica laranja, mas não imprime. Será que está faltando algo?

public void detectaImpressoras() {
 
 PrintService [] printService = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.AUTOSENSE, null);
 System.out.println("QTD de Impressoras Detectadas : "+printService.length); //Verifica quantas impressoras  estão conectadas
 PrintService impressorapadrao = PrintServiceLookup.lookupDefaultPrintService(); //Verifica qual é a impressora padrão
 System.out.println("A impressora Padrão é : "+impressorapadrao.getName());
 
 DocFlavor docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;     
 HashDocAttributeSet hashDocAttributeSet = new HashDocAttributeSet(); 
 
 try {
     FileInputStream fileInputStream= new FileInputStream("c:/TESTE.txt");
     Doc doc = new SimpleDoc(fileInputStream,docFlavor,hashDocAttributeSet);
             
     PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
     PrintService printServico = ServiceUI.printDialog(null, 200, 200, printService, impressorapadrao, docFlavor, printRequestAttributeSet);
     
     if (printServico!=null){
         DocPrintJob docPrintJob = printServico.createPrintJob();
         try {           
             docPrintJob.print(doc, printRequestAttributeSet);
         } catch (PrintException ex) {
             JOptionPane.showMessageDialog(null, "Não foi possivel imprimir. Erro:\n "+ex);
         }
     }
 }catch(FileNotFoundException erro){
    // Logger.getLogger(ETIQUETA_CAIXA.class.getName()) .log(Level.SEVERE,null,erro));
     JOptionPane.showMessageDialog(null,"Não foi possivel imprimir"+erro );
 }
 
}

colca para imprimir o trace, e posta o erro aqui, ou não está dando erro ?

Bom dia Tiago,

Muito obrigado pelo retorno.

Não dá nenhum erro, apenas deixa a impressora ocupada com luz laranja , no meu caso testei com uma Brother 8085, mas meu objetivo era usar o programa em uma zebra para impressão de etiquetas.

No entanto consegui enviar direto para a impressora de outra forma, que foi utilizando recurso do próprio Jasper.

Fiz da seguinte forma:

try{
PrintService serviceFound = null;
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);

for(PrintService service:services){
    if(service.getName().trim().equals(nome_impressora.trim()))
        serviceFound = service;           
}  

		JRExporter exporter = new JRPrintServiceExporter();
		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);                       
        exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, serviceFound.getAttributes());                                                                                     
		exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.TRUE);
		exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.TRUE);  
		exporter.exportReport();                    
}

catch (Exception e){    
}

Porém, encontrei outra dificuldade que foi de configurar o tamanho do papel para enviar direto para a impressora. que no meu caso é de 15x8 cm.

E então abrio seginte tópico: