InitialContext实例化失败

时间:2012-10-25 19:58:43

标签: java java-ee jndi jboss7.x java-7

我编写了一个简单的简单java程序来与HornetQ服务器进行远程连接。

Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
p.put(Context.PROVIDER_URL, "remote://myIP:4447");
p.put(Context.SECURITY_PRINCIPAL, "user");
p.put(Context.SECURITY_CREDENTIALS, "pwd");

final InitialContext iniCtx = new InitialContext(p);

如果JBoss服务器出现故障, final InitialContext iniCtx = new InitialContext(p);语句本身抛出

javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.RuntimeException: Operation failed with status WAITING]

这是有效的情况,如果JBoss服务器(或任何其他应用程序服务器)关闭,Instantiating InitialContext本身会失败吗?

如果这是有效的情况,

我有另一个独立的应用程序(这不在任何服务器上,独立的Java应用程序)

在这个独立的应用程序中,我正在尝试创建与上面完全相同的行IntialContext

当JBoss服务器关闭时,InitialContext实例化不会失败。

完全不知道这个IntialContext是如何工作的,任何输入都会受到赞赏。

更新

是否有任何罐子可能影响InitialContext的行为?

2 个答案:

答案 0 :(得分:3)

  

这是有效的情况,如果JBoss服务器(或任何其他应用程序服务器)关闭,Instantiating InitialContext本身会失败吗?

  

如果这是有效的情况,我有另一个独立的应用程序(这不在任何服务器,独立的Java应用程序)。在这个独立的应用程序中,我试图创建与上面完全相同的IntialContext。当JBoss服务器关闭时,InitialContext实例化不会失败。

真。难以置信。它做了什么呢?如果服务器没有出现故障,你怎么知道服务器已关闭?

答案 1 :(得分:1)

看起来当你stop服务器并运行standalone1时, 服务器并没有在transition中停止,因为它确实获得了initialContext 但是稍后在服务器转换完成时失败。

所以一个问题:你是如何停止服务器的?杀死进程或某些命令行脚本停止?使用eclipse?或者是什么?

当您停止服务器时,使用{dos}来查看所有端口正在被监听的内容。netstat -a。可能是Jboss端口仍在监听的可能性。确认没有收听端口,然后运行独立端口,您应该在InitialContext

上出错

我要尝试的底线是if this is valid case, I have another standalone app (this is not on any server, standalone java application). Inside this standalone app, I am trying to create IntialContext exact same lines as above. When JBoss server is down, InitialContext instantiation is not failing.

不是一个有效的案例,不应该发生。