Windows permet de mapper des lecteurs de serveurs réseau vers des lettres de lecteurs locaux afin qu'ils puissent être accessibles par les utilisateurs comme s'il s'agissait d'un lecteur local. Il s'agit d'une fonctionnalité très puissante de Windows, dont de nombreuses applications tirent parti.
Le problème, cependant, est que Windows n'est pas très cohérent quant à la façon dont il gère ces lecteurs mappés lorsqu'ils sont accessibles depuis un service Windows. Lorsque le service est démarré manuellement, les lecteurs seront disponibles, mais lorsque le système est redémarré, le service ne pourra plus y accéder.
Le Java Service Wrapper fournit un moyen simple d'indiquer au service de mapper lui-même les lecteurs réseau lorsqu'ils ne sont pas disponibles. Cela signifie qu'ils peuvent être accessibles de manière fiable à tout moment.
Solution |
|
La solution consiste à donner au service la capacité de mapper ses propres lecteurs. Le Java Service Wrapper fournit un ensemble flexible de propriétés qui permettent de mapper des lecteurs réseau ainsi que des imprimantes au démarrage. Ainsi, les applications Java pourront utiliser de manière fiable ces partages, quel que soit le moment où le service est démarré. Sous Windows, les partages réseau peuvent être mappés vers des lettres de lecteurs afin d'y accéder comme s'il s'agissait de lecteurs locaux. De nombreuses applications utilisent cette capacité pour accéder de manière transparente aux fichiers partagés sur le réseau. Cependant, lorsqu'une telle application est convertie en service, l'accès aux lecteurs mappés devient peu fiable, car le mappage n'est potentiellement effectué que dans la session de l'utilisateur. Ils sont disponibles dans certains cas mais pas dans d'autres, selon le moment où le service est démarré, et selon qui était connecté à la machine à ce moment-là. |
Aperçu technique |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Il est possible de configurer un service Windows pour qu'il s'exécute sous un compte spécifique. Cependant, les lecteurs mappés configurés dans ce compte ne seront pas disponibles lors du premier démarrage du système, et ne seront donc pas disponibles pour le service. Si un utilisateur se connecte avec le même compte, les lecteurs seront alors configurés, mais ils ne seront toujours pas disponibles pour le service, sauf s'il est complètement redémarré. Traditionnellement, cela signifiait qu'il était nécessaire d'accéder aux fichiers sur le réseau en utilisant la UNC (Uniform Naming Convention) :
Cette syntaxe UNC fonctionne avec certaines applications, mais elle n'est pas aussi pratique ni aussi portable qu'un lecteur mappé :
De nombreuses applications qui n'étaient pas conçues à l'origine pour s'exécuter en tant que service Windows, ou qui accèdent à des lecteurs réseau, échoueront lorsqu'elles rencontreront un chemin UNC dans un fichier de configuration. Le Java Service Wrapper facilite l'accès des services aux ressources partagées. Avec seulement un ensemble de propriétés « share », vous pouvez facilement configurer des mappages vers des emplacements distants ou des imprimantes et les rendre disponibles pour le compte en cours d'exécution, avant le lancement de l'application Java.
|
Référence : Propriétés wrapper.share.<n>.* |
|
Ces propriétés sont utilisées pour configurer le mappage des ressources réseau vers des lecteurs locaux.
|








