jboss jndi контекст пуст - PullRequest
       33

jboss jndi контекст пуст

0 голосов
/ 01 октября 2011

ejb-jar, развернутый в jboss 7, имеет привязку jdni "java: global / foo! IFoo".Консоль управления Jboss показывает эту привязку.Порт jndi по умолчанию равен 1099.Клиент в jboss получает объект для этой привязки, но автономный клиент, работающий на той же машине, не получает.

Properties properties = new Properties();  
properties.put("java.naming.factory.initial",
               "org.jboss.as.naming.InitialContextFactory");    
properties.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
properties.put("java.naming.provider.url","jnp://localhost:1099");
Context ctx = new InitialContext(properties);
NamingEnumeration<NameClassPair> list = ctx.list("");
while (list.hasMore()) {
    System.out.println(list.next().getName());
}

не дает результатов.Также поиск по названию выше не удается.Где проблема?

1 Ответ

2 голосов
/ 11 мая 2012

Кажется, поддержка удаленного поиска JNDI была реализована только в JBoss AS 7.1.0.Final ( AS7-1338 ).

Свойства JNDI для выполнения удаленного поиска также изменились.Не могли бы вы попытаться создать экземпляр InitialContext с этими свойствами JNDI?

properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
properties.put(Context.PROVIDER_URL, "remote://localhost:4447");
properties.put(Context.SECURITY_PRINCIPAL, "user");
properties.put(Context.SECURITY_CREDENTIALS, "password");

Удаленный доступ к дереву JNDI защищен, поэтому вам нужно предоставить пользователя и пароль (добавить пользователя приложения через add-user.sh / add-user.bat script).

Я сделал это на своем локальном сервере, но NamingEnumeration, возвращаемый InitialContext.list(), все еще пуст, хотя поиск ниже работает нормально.Я разместил ответ на форуме JBoss , но пока не повезло.

// This lookup works fine
System.out.println(ctx.lookup("jms/RemoteConnectionFactory").getClass().getName());
// ... but this list doesn't (empty enumeration)
NamingEnumeration<NameClassPair> list = ctx.list("");
...