JBoss AS 7.0.2 - 未找到打印服务

时间:2012-01-03 14:02:27

标签: java java-ee jboss7.x

我的问题是,在JBoss AS 7中运行时,以下代码段找不到任何打印机(如果它在EJB中,注入POJO或SesscionScoped命名类,则无关紧要):

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中的一个错误?或者应该以某种特殊方式调用PrintServiceLookup?

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

我只是在这里猜测,但可能是JBoss使用的SecurityManager阻止了这一点。班级PrintServiceLookup的文件说

  

建议使用PrintServiceLookup实现程序检查SecurityManager.checkPrintJobAccess()以拒绝访问不受信任的代码。遵循此建议策略意味着不受信任的代码可能无法找到任何打印服务。

JBoss AS7: Security : Running under a Java Security Manager

答案 1 :(得分:0)

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

我认为这是awt / windows类加载的东西。