В JBoss AS 7.1.1.Final InitialContext.list() возвращает пустой список

Я пытаюсь просмотреть очередь JMS на JBoss AS 7.1.1.Final с помощью Hermes JMS, но получаю «пустое» дерево JNDI. Чтобы исследовать это, я написал простую программу для создания дампа узлов дерева JNDI с сервера JBoss. Код примерно такой:

public static void main(String[] args) throws Exception {

     final Properties jndiProperties = getJboss7Properties();
     // final Properties jndiProperties = getHornetQProperties();


     // Dumps the initial context contents
     InitialContext ctx = new InitialContext(jndiProperties);
     listRootJndiContext(ctx);


     // Simple lookup
     System.out.println(ctx.lookup("java:jms/RemoteConnectionFactory")
               .getClass().getName());
}

private static Properties getJboss7Properties() {
     final Properties jndiProperties = new Properties();
     jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY,
               "org.jboss.naming.remote.client.InitialContextFactory");
     jndiProperties.put(Context.PROVIDER_URL, "remote://localhost:4447");
     jndiProperties.put(Context.SECURITY_PRINCIPAL, "guest");
     jndiProperties.put(Context.SECURITY_CREDENTIALS, "guest123");
     return jndiProperties;
}

private static void listRootJndiContext(Context ctx) throws NamingException {
     System.out.println("Listing root JNDI context:");
     NamingEnumeration<NameClassPair> list = ctx.list("");
     if (list.hasMore()) {
          while (list.hasMore()) {
                NameClassPair ncp = list.next();
                System.out.println(ncp.getName() + " (" + ncp.getClassName() + ")");
          }
     } else {
          System.out.println("Empty list!");
     }
}

При вызове ctx.list("") возвращаемый список всегда пуст, хотя ctx.lookup("java:jms/RemoteConnectionFactory") возвращает фабрику соединений JMS, как и ожидалось.

Я попытался запустить точно такой же код на автономном сервере HornetQ (2.2.14.Final), изменив свойства InitialContext, чтобы использовать «старый» протокол jnp, и узлы дерева JNDI были правильно сброшены.

Я также попытался запустить тот же код (за исключением вызова конструктора InitialContext() по умолчанию) на сервере (в сервлете), и он также работал, как и ожидалось (сброс узлов дерева JNDI).

Есть ли какое-либо разрешение для настройки стандартного.xml или что-то в этом роде?

Реализована ли вообще эта функция («Удаленный просмотр JNDI») в JBoss AS 7.1.1.Final?


person mhnagaoka    schedule 14.05.2012    source источник
comment
Этот вопрос несколько связан с stackoverflow.com/questions /7616981/jboss-jndi-context-is-empty/   -  person mhnagaoka    schedule 14.05.2012
comment
Я также разместил этот вопрос на форумах JBoss, но пока безуспешно. community.jboss.org/message/734815   -  person mhnagaoka    schedule 14.05.2012