JBoss AS 7.0.2 - услуги печати не найдены - PullRequest
2 голосов
/ 03 января 2012

Моя проблема заключается в том, что следующий фрагмент кода не находит принтеры при запуске внутри 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?Или PrintServiceLookup должен вызываться каким-то особым образом?

Любая помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 04 января 2012

У меня тоже такая же проблема. Но добавление файла политики не помогло. Если вы перебираете код службы поиска, он не выдает исключение в checkPrintJobAccess.

Я думаю, что-то с загрузкой классов AWT / Windows.

0 голосов
/ 04 января 2012

Я просто догадываюсь здесь, но возможно, что SecurityManager, который используется JBoss, предотвращает это.Документы класса PrintServiceLookup скажем

Разработчику PrintServiceLookup рекомендуется проверять SecurityManager.checkPrintJobAccess (), чтобы запретить доступ к ненадежному коду.Следование этой рекомендуемой политике означает, что ненадежному коду может быть невозможно найти какие-либо службы печати. ​​

JBoss AS7: Безопасность: Запуск под управлением диспетчера безопасности Java

...