views:

1207

answers:

2

If I run my JBoss application from the Windows command prompt I can get the list of printers (including networked printers just fine).

If I run my JBoss application as a Windows service, I only get the list of printers that are directly connected to the machine. The networked printers don't show up.

Here is the Java code I use to get the list of printers:

PrintService[] printerServices = PrintServiceLookup.lookupPrintServices(null, null);

It doesn't appear to be a permissions problem, since according to our administrator, the permissions are setup just fine.

Does some have a better explanation, or is there a set of permissions that might be required to get the networked printers to show up?

+2  A: 

You have to run the windows service as a user on the domain that has the appropriate permissions, not as LocalUser.

You can also add networked printers using a tcp/ip connection, and the problem goes away.

Khandelwal
A: 

My colleague had this very same problem just minutes ago, but on a REDHAT LINUX system. His server had been rebooted and printer functionality worked only half way; lp worked, cups worked, but no access to printers from Java. He found out localhost had disappeared from the hosts file.

His solution: add localhost to hosts file (but since you are on windows, this might not be your solution)

Thor