这就是我一天来一直在反对的东西。
我有一个旧版本的jboss (jboss4),我在里面启动了一些代码来连接到sonic mq (我想是7.6)的一个实现,在那里我作为一个客户端运行。我正在运行java 1.6.0_23。这就是说,我看到了非常奇怪的行为,我似乎无法理解。
当我的进程启动时,我加载了建立到sonic mq服务器的连接所需的所有jndi props,然后像这样调用
Context ic = new InitialContext(jndiEnv);然而,我看不到我的线鲨鱼在这一点上的流量,这让我困惑。最终,这会超时给我一个异常
javax.naming.NamingException. Root exception is com.sonicsw.mf.comm.ConnectTimeoutException: Timeout occured while attempting to connect真正扣人心弦的是,我从同一服务器上的独立jar (而不是从jboss内部)运行我的进程,并且它连接得很好?
发布于 2012-02-19 07:16:24
嘿,任何遇到这个的人...所以我解决了我的问题,并认为我应该分享它。
事实证明,尽管音速技术团队表示,他们的代码从不查看jvm变量javax.ssl.keystore……确实是这样。
它被设置为这样的javax.ssl.keystore=C:something,这将导致初始上下文生成挂起,直到超时。然而,这个javax.ssl.keystore=C:\something可以工作。如果没有设置,它也会正常工作。
我本以为会抛出某种异常:?
我希望这对某个人有帮助!:)
谢谢J
发布于 2012-01-14 00:20:10
两件事:
您能检查JBoss服务器上的类路径中所需的jars吗?
您是否正在设置Sonic MQ的域名属性,该属性是获取sonic目录服务的初始上下文对象ref所必需的?
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
https://stackoverflow.com/questions/8826981
复制相似问题