Jakarta ee jboss jndi上下文为空

Jakarta ee jboss jndi上下文为空,jakarta-ee,jndi,jboss7.x,Jakarta Ee,Jndi,Jboss7.x,部署到JBoss7的ejb jar有一个jdni绑定“java:global/foo!IFoo”。 Jboss管理控制台显示此绑定。 默认情况下,jndi端口为1099。 jboss上的客户机获取该绑定的对象,但在同一台机器上运行的独立客户机不获取 Properties properties = new Properties(); properties.put("java.naming.factory.initial", "org.jboss.as.naming

部署到JBoss7的ejb jar有一个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());
}
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=新的InitialContext(属性);
NamingEnumeration list=ctx.list(“”);
while(list.hasMore()){
System.out.println(list.next().getName());
}
没有结果。此外,对上述名称的查找也失败。
问题出在哪里?

远程JNDI查找支持似乎只在JBoss AS 7.1.0.Final()上实现

用于执行远程查找的JNDI属性也已更改。您能否尝试用这些JNDI属性实例化
InitialContext

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
脚本添加应用程序用户)

我在自己的本地服务器上执行了此操作,但是
InitialContext.list()
返回的
namingumeration
仍然为空,即使下面的查找工作正常。我在上贴了一个答案,但到目前为止运气不好

// 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("");
//此查找工作正常
System.out.println(ctx.lookup(“jms/RemoteConnectionFactory”).getClass().getName());
// ... 但此列表没有(空枚举)
NamingEnumeration list=ctx.list(“”);