2010-09-10 17 views
3

J'utilise la fabrique de contexte JNDI basée sur un fichier com.sun.jndi.fscontext.RefFSContextFactory. Il semble prendre le lecteur de où l'application java est démarré dans.Comment puis-je spécifier la lettre de lecteur (windows) pour le PROVIDER_URL du JNDI InitialContext

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); 

Comment puis-je spécifier la lettre de lecteur, comme d:/tmp/jms/mycontext? L'utilisation file://d:/tmp/jms/mycontext semble aller encore au lecteur C sur mon système

Répondre

1

Après un peu de dépannage et de débogage moi-même je l'ai compris. L'utilisation d'un \ supplémentaire avant la lettre du lecteur résout

properties.put(Context.PROVIDER_URL,"file://\\d:\\tmp\\mycontext"); 
0

comme ceci:

"file:D:\\tmp\\jms\\mycontext"

Il y a quelques exemples dans un tutoriel à developerWorks qui peuvent être utiles:
IBM WebSphere Developer Technical Journal: Running a standalone Java application on WebSphere MQ V6.0

+0

fait cela ne fonctionne pas comme file: // d:/tmp/jms/mycontext ou fichier: D: \\ tmp \\ \\ jms mycontext va encore au lecteur qui est utilisé pour démarrer java et si java est démarré à partir de C: il recherche c:/tmp/jms/context – mrjohn

+1

Désolé de l'entendre. Cela fonctionne parfaitement pour moi. J'utilise l'implémentation Java 6.0 d'IBM. –

+0

Vous pourriez avoir raison, cela dépend de la mise en œuvre de Java. N'a pas fonctionné pour moi avec java 5 et eclipse comme environnement de développement – mrjohn