JBoss AS 7.0.2 -没有找到打印服务



我的问题是,当在JBoss AS 7中运行时,以下代码段没有找到任何打印机(无论它是在EJB中,注入的POJO或SesscionScoped Named类中):

PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
System.out.println("Number of services: " + services.length);

当它在独立的Java应用程序中运行时,它按预期返回6个服务。此外,我没有将Jboss作为服务运行,而是使用standalone.bat(以管理员身份运行也没有帮助),这是类似帖子中最常见的问题。我也试过PrintServiceLookup.lookupDefaultPrintService()PrinterJob.lookupPrintServices(),但运气不好。

我几乎没有主意了,也许这是JBoss 7的一个bug ?或者应该以某种特殊的方式调用printservicellookup ?

任何帮助都非常感谢!

我只是猜测这里,但它可能是由JBoss使用的SecurityManager防止这种情况。PrintServiceLookup类文档说

printservicellookup实实者建议检查SecurityManager.checkPrintJobAccess()是否拒绝访问不受信任的代码。遵循此推荐策略意味着不受信任的代码可能无法定位任何打印服务。

JBoss AS7: Security: Running under a Java Security Manager

我也有同样的问题。但是添加策略文件并没有帮助。如果你逐级执行查找服务的代码,它不会在checkPrintJobAccess上抛出异常。

我想这是awt/windows类加载的问题。

最新更新