1

Windows 2008의 Tomcat에서 서버 측 인쇄 기능이 있는데,이 경우 기본 프린터에서 인쇄되며 영원히 중단됩니다.Java에서 인쇄 - 인쇄 작업이 영원히 중단됩니다.

at sun.awt.windows.WPrinterJob._startDoc(Native Method) 
at sun.awt.windows.WPrinterJob.startDoc(WPrinterJob.java:1249) 
at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1371) 
at com.gnostice.pdfone.PdfPrinter.a(Unknown Source) 
at com.gnostice.pdfone.PdfPrinter.print(Unknown Source) 
at com.gnostice.pdfone.PdfPrinter.print(Unknown Source) 
at de.ikoffice.print.PrintService.printPDF(PrintService.java:64) 
at de.ikoffice.document.Document.printPDFToPrinter(Document.java:261) 
at de.ikoffice.document.Document.start(Document.java:91) 
at de.ikoffice.document.DocumentService.processMessage(DocumentService.java:48) 

범인 프린터 (서버가 사용자 톰캣으로 실행하는 톰캣 5.5) 몇 가지 배경 쉘 컨텍스트에서 창을 열 것으로 보인다 "마이크로 소프트 XPS 문서 작가"이며, 중단 :이 스택 트레이스입니다 영원히 거기에, 나는 상황을 처리하는 가장 좋은 방법이 뭔지 모르겠다.

아이디어가 있으십니까? 프린터 이름을 하드 코딩하고 인쇄 할 수 없습니까? 스레드를 중지() 하시겠습니까? 이것은 네이티브 함수이므로 원하는 결과를 가진 스레드를 인터럽트 할 수 없습니다().

+0

자신의 GC를 사용하여 인쇄 할 때 Java의 기본 표준 인쇄 코드입니다. – Daniel

답변

2

실제 프린터에서 비슷한 문제가있었습니다. 웹에서 읽은 내용 Windows Server 2008은 사용자 인터페이스가없는 특별한 세션에서 서비스를 실행하므로 모든 팝업이 응용 프로그램을 정지시킵니다.

서버에서 XPS Writer를 제거하고 실제 프린터를 사용할 수 있습니까? 또는 명시 적으로 XPS Writer를 확인하고 사용자가 인쇄를 허용하지 않습니까?

저는 WS 2008에서 사용자 상호 작용을 허용하는 다양한 기술에 대한 언급을 보았지만 응용 프로그램의 요구 사항에 적합한 지 여부는 말할 수 없습니다.