[英]jboss and sonic mq not playing nice
这就是我今天一直在反对的一天。
我有一个旧版本的jboss(jboss4),从中我启动了一些代码以出去并连接到我作为客户端运行的sonic mq(7.6,我认为)的实现。 我正在运行Java 1.6.0_23。 话虽如此,我看到了我似乎无法弄清的非常奇怪的行为。
当我的过程开始时,我会加载建立与音波mq服务器的连接所需的所有jndi道具,然后像这样调用
Context ic = new InitialContext(jndiEnv);
但是,那时我的丝鲨没有任何交通,这让我感到困惑。 最终,这会超时给我例外
javax.naming.NamingException. Root exception is com.sonicsw.mf.comm.ConnectTimeoutException: Timeout occured while attempting to connect
真正的麻烦在于,我是从同一台服务器上的独立jar(而不是从jboss内部)运行我的进程的,并且连接正常吗?
嘿,遇到这个问题的任何人...所以我解决了我的问题,以为我会分享...
事实证明,即使是音速技术团队也说过,他们的代码从不看jvm变量javax.ssl.keystore ...确实如此...
像这样设置javax.ssl.keystore = C:something,这将导致初始上下文生成挂起直到超时。 但是,此javax.ssl.keystore = C:\\ something可以工作。 如果未设置,它将同样有效...
我本来希望会抛出某种异常:?
希望这对某人有所帮助! :)
谢谢J
两件事情:
您可以在JBoss服务器的类路径中检查所需的jar吗?
您是否正在设置Sonic MQ的域名属性,这是获取Sonic目录服务的初始上下文对象引用所必需的?
private Properties getConnectionEnv(String initialContextFactory,String providerURL, String domain, String userName, String password) {
Properties connectionEnv = new Properties();
if (initialContextFactory != null && initialContextFactory.length() != 0) {
connectionEnv.put(Context.INITIAL_CONTEXT_FACTORY,initialContextFactory);
}
if (providerURL != null && providerURL.length() != 0)
connectionEnv.put(Context.PROVIDER_URL, providerURL);
if (domain != null && domain.length() != 0)
connectionEnv.put("com.sonicsw.jndi.mfcontext.domain", domain);
if (userName != null && userName.length() != 0) {
connectionEnv.put(Context.SECURITY_PRINCIPAL, userName);
connectionEnv.put(Context.SECURITY_CREDENTIALS, password);
}
return connectionEnv;
}
希望这对您有所帮助。
GK
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.