Могу ли я построить структуру каталогов (JNDI) с помощью фабрики контекста на основе файлов com.sun.jndi.fscontext.RefFSContextFactory - PullRequest
1 голос
/ 11 сентября 2010

Использование фабрики контекста JNDI на основе файлов com.sun.jndi.fscontext.RefFSContextFactory, и кажется, что разрешено только 1 файл привязки в указанном вами месте.Например,

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

Есть ли способ создать структуру каталогов, скажем, для comp.env, чтобы в каждом каталоге был файл привязок?(Вместо указания полного контекста в самом файле привязок)

1 Ответ

1 голос
/ 11 сентября 2010

Каждый каталог - это субконтекст, доступ к которому осуществляется в виде пути.Каталоги - это узлы ветвей, каждый из которых содержит .bindings в качестве своего конечного узла.Каждая ветвь может иметь ровно один лист и ноль или более дополнительных ветвей.

Как вы это сделаете, зависит от инструмента, который вы используете.Я могу привести примеры из инструмента WebSphere MQ JMSAdmin, но у других будет немного (или дико) другой синтаксис.Поскольку FSContext от Sun используется в обоих наших примерах, обход контекста работает одинаково, хотя наши инструменты администрирования могут различаться по синтаксису.

Используя JMSAdmin, вы можете DEFINE CTX(subcontext_name), и это создает каталог, в котором будут находиться .bindingsфайл.Затем вы можете CHANGE CTX(subcontext_name) сделать этот подконтекст текущим.Все, что вы определите, теперь будет в файле .bindings внутри этого подконтекста.

В вашем коде вы ссылаетесь на подконтекст как путь.Например, после открытия исходного контекста вы можете искать объект как subcontext_name/foo.

. В IBM это реализовано подробнее в WebSphere MQ Using Java руководство по Управление подконтекстами .Хотя синтаксис может отличаться от используемого вами, инструмент совместим с JMS и использует com.sun.jndi.fscontext.RefFSContextFactory, поэтому принципы будут такими же.

...