Java 网络打印机对Windows Server 2008 JBoss EAP 6.3.0上的lookupPrintServices不可见
我已将JBoss EAP 6.3.0作为Windows 2008服务运行在Admin组的Active Directory用户帐户下。网络打印机(型号KONICA MINOLTA 423SeriesPS)通过使用其帐户中的RDPing连接到此用户,然后通过其Java 网络打印机对Windows Server 2008 JBoss EAP 6.3.0上的lookupPrintServices不可见,java,printing,jboss,windows-server-2008-r2,Java,Printing,Jboss,Windows Server 2008 R2,我已将JBoss EAP 6.3.0作为Windows 2008服务运行在Admin组的Active Directory用户帐户下。网络打印机(型号KONICA MINOLTA 423SeriesPS)通过使用其帐户中的RDPing连接到此用户,然后通过其\\server\printerName路径连接到打印机。此打印机也被设置为该用户的默认打印机。然后我打开JBoss服务和我的应用程序EAR加载。它包含一个WAR文件,该文件使用PrintServiceLookup.lookupPrintSer
\\server\printerName
路径连接到打印机。此打印机也被设置为该用户的默认打印机。然后我打开JBoss服务和我的应用程序EAR加载。它包含一个WAR文件,该文件使用PrintServiceLookup.lookupPrintServices(null,null)查找打印机。返回的唯一打印机是“Microsoft XPS Document Writer”。怎么了
更新
我在Windows事件查看器中发现此错误。似乎不太可能有关联,因为在创建该用户和打印机之前就有很多这样的内容,但值得一提的是:
The print spooler failed to load a plug-in module TPVMMon.dll, error code 0x7e See the event user data for context information.
事实证明,至少在使用Java 1.7的Windows Server 2008中,这样配置的网络打印机不会可靠地出现在从
PrinterJob.lookupPrintServices
或PrintServiceLookup.lookupPrintServices()
返回的打印机列表中。(奇怪的是,在某些情况下,网络打印机确实会为本地系统以外的帐户显示,但我还没有确定它们是什么。)为了让它们可靠地为任何Active Directory用户显示:
以这种方式配置的网络打印机将始终显示。至少对我来说是这样。事实证明,这样配置的网络打印机不会可靠地出现在从
PrinterJob.lookupPrintServices
或PrintServiceLookup.lookupPrintServices()
返回的打印机列表中,至少在使用Java 1.7的Windows Server 2008中是如此。(奇怪的是,在某些情况下,网络打印机确实会为本地系统以外的帐户显示,但我还没有确定它们是什么。)为了让它们可靠地为任何Active Directory用户显示: