2009-06-23 2 views
3

Si j'exécute mon application JBoss à partir de l'invite de commande Windows, je peux obtenir la liste des imprimantes (y compris les imprimantes en réseau).Java Print Service: PrintServiceLookup.lookupPrintServices ne renvoie pas les imprimantes en réseau

Si j'exécute mon application JBoss en tant que service Windows, je n'ai que la liste des imprimantes qui sont directement connectées à la machine. Les imprimantes en réseau n'apparaissent pas.

Voici le code Java j'utiliser pour obtenir la liste des imprimantes:

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

Il ne semble pas être un problème d'autorisations, puisque selon notre administrateur, les autorisations sont configurés très bien. Est-ce que certains ont une meilleure explication, ou y a-t-il un ensemble d'autorisations qui pourraient être nécessaires pour faire apparaître les imprimantes en réseau?

Répondre

5

Vous devez exécuter le service Windows en tant qu'utilisateur sur le domaine disposant des autorisations appropriées, et non en tant que LocalUser.

Vous pouvez également ajouter des imprimantes en réseau à l'aide d'une connexion tcp/ip, et le problème disparaît.

0

Mon collègue a eu ce même problème il y a quelques minutes, mais sur un système REDHAT LINUX. Son serveur avait été redémarré et la fonctionnalité de l'imprimante ne fonctionnait qu'à moitié. lp a fonctionné, les tasses ont fonctionné, mais aucun accès aux imprimeurs de Java. Il a découvert que localhost avait disparu du fichier hosts.

Sa solution: ajouter localhost fichier hosts (mais puisque vous êtes sur Windows, cela pourrait ne pas être votre solution)

0

il est apparu être un problème avec les imprimantes réseau. Toute imprimante devant être vue par JRE doit être dans un état "partagé". Malheureusement, les imprimantes réseau ne le sont pas. Voir: Paramètres système-> Imprimantes-> PDF -> -> Partagé (cocher)

Questions connexes