我编写了一个简单的 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 服务器(或任何其他应用程序服务器)关闭,实例化 InitialContext 本身应该失败吗?
如果这是有效的情况,
我有另一个独立的应用程序(这不在任何服务器上,独立的 java 应用程序)
在这个独立的应用程序中,我试图创建IntialContext
与上面完全相同的行。
当 JBoss 服务器关闭时,InitialContext
实例化不会失败。
对这个 IntialContext 的工作原理完全感到困惑,任何输入都将不胜感激。
更新:
是否有任何罐子可能会影响 InitialContext 行为?