Опитвам се да преглеждам 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 Connection Factory, както се очаква.
Опитах се да стартирам абсолютно същия код срещу самостоятелен HornetQ сървър (2.2.14.Final), променяйки свойствата на InitialContext, за да използвам „стария“ протокол jnp и възлите на JNDI дървото бяха изхвърлени правилно.
Също така се опитах да стартирам същия код (с изключение на извикването на конструктора по подразбиране InitialContext() в рамките на сървъра (в Servlet) и той също работи според очакванията (изхвърляне на възлите на JNDI дърво).
Има ли някакво разрешение за конфигуриране на standard.xml или нещо подобно?
Тази функция („Отдалечено сърфиране в JNDI“) реализирана ли е изобщо на JBoss AS 7.1.1.Final?