jboss和sonic mq玩得不好

时间:2012-01-11 21:34:43

标签: java jboss timeout sonicmq

这就是我现在一直在打击我的头脑 我有一个旧版本的jboss(jboss4),从内部我发布了一些代码,然后连接到sonic mq(7.6,我认为)的实现,我作为客户端运行。我正在运行java 1.6.0_23。话虽这么说,我看到非常奇怪的行为,我似乎无法弄清楚。

当我的进程开始时,我加载了我需要与sonic 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中)运行我的进程并且连接正常吗?

2 个答案:

答案 0 :(得分:4)

嘿,任何碰到这个的人......所以我解决了我的问题,并认为我会分享它......

事实证明,即使是声音科技团队也说他们的代码永远不会看jvm变量javax.ssl.keystore ...它确实......

这样设定 javax.ssl.keystore = C:什么 这将导致初始上下文生成挂起,直到超时。 不过这个 javax.ssl.keystore = C:\东西 会工作。 如果它没有设置它也会起作用......

我希望抛出某种异常:?

我希望这可以帮助某个人! :)

感谢 Ĵ

答案 1 :(得分:0)

两件事:
你能在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