我编写了一个简单的简单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的行为?
答案 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.
不是一个有效的案例,不应该发生。