2010-09-10 17 views
1

En utilisant la fabrique de contexte JNDI basée sur un fichier com.sun.jndi.fscontext.RefFSContextFactory et il semble autoriser seulement 1 fichier de liaison dans l'emplacement que vous spécifiez. Par exemplePuis-je créer une structure de répertoire (JNDI) avec l'usine de contexte de fichier com.sun.jndi.fscontext.RefFSContextFactory

Hashtable properties = new Hashtable(2); 
properties.put(Context.PROVIDER_URL,"file:///tmp/jms/mycontext"); 
properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory"); 
InitialContext ctx = new InitialContext(properties); 

est-il un moyen de créer une structure de répertoire pour dire comp.env afin que chaque répertoire a un fichier des liaisons? (Au lieu de spécifier le contexte complet dans les liaisons fichier lui-même)

Répondre

1

Chaque répertoire est un sous-contexte qui est accessible comme un chemin. Les répertoires sont des nœuds de branche qui contiennent chacun un .bindings en tant que nœud feuille. Chaque branche peut avoir exactement une feuille et zéro ou plusieurs branches supplémentaires.

Comment vous faites cela dépend de l'outil que vous utilisez. Je peux fournir des exemples à partir de l'outil JMSAdmin de WebSphere MQ, mais d'autres auront une syntaxe légèrement différente (ou extravagante). Puisque le FSContext de Sun est utilisé dans nos deux exemples, la traversée de contexte fonctionne de la même manière, bien que nos outils d'administration puissent différer dans la syntaxe.

En utilisant JMSAdmin vous pouvez DEFINE CTX(subcontext_name) et cela crée un répertoire dans lequel résidera un fichier .bindings. Vous pouvez alors CHANGE CTX(subcontext_name) pour que ce sous-contexte soit le sous-contexte actuel. Tout ce que vous définissez sera maintenant dans le fichier .bindings dans ce sous-contexte.

Dans votre code, vous référer à la sous-contexte comme un chemin. Par exemple, après avoir ouvert le contexte initial, vous pouvez rechercher un objet sous la forme subcontext_name/foo.

Il y a plus sur la mise en œuvre IBM dans le manuel WebSphere MQ Using Java sous Manipulating Subcontexts. Bien que la syntaxe puisse différer de celle que vous utilisez, l'outil est compatible avec JMS et utilise com.sun.jndi.fscontext.RefFSContextFactory pour que les principes soient les mêmes.

+0

Ce n'est pas ce que la question est. Je me demande si nous pouvons structurer bien la dans une structure sous-contexte de répertoire il est plus oranized et nous ne finissent pas avec un fichier .bindings énorme – mrjohn

+0

Je suppose que l'aide de la com.sun.jndi.fscontext.RefFSContextFactory vous ne pouvez avoir un fichier qui a le contexte complet. – mrjohn

+0

Si vous voulez dire par répertoire, alors oui. Un .bindings distinct par répertoire fonctionne mais pas une hiérarchie de contextes dans un seul fichier .bindings. –