连接JMXConnector时获取NoInitialContextException

时间:2012-01-25 18:23:40

标签: java exception jmx

我需要将java aplication连接到MBean服务器,但是我无法让JMXConnector工作。

我尝试运行时收到NoInitialContextException:

try
{
    if(user != null)
    {
        HashMap environment = new HashMap();
        environment.put(JMXConnector.CREDENTIALS, new String[] {user, password});
        connector = JMXConnectorFactory.connect(location, environment);
    }
    else
    {
        connector = JMXConnectorFactory.connect(location, null);
    }

    beanServer = connector.getMBeanServerConnection();
}
catch(Exception e)
{
    throw new ConnectException("Failed to connect to " + location + ": " + e.getMessage());
}

当我使用用户名和密码时会发生这种情况,虽然我无法测试,因为我必须对我的测试服务器进行身份验证。

编辑:我正在使用java6 SE。没有添加相关的罐子。

关于我在这里做错了什么的想法?非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您没有指定要尝试连接的服务器,但这里是weblogic的示例。我怀疑,您的JMXServiceURL不正确,它会根据您尝试连接的Mbeanserver进行更改。

答案 1 :(得分:0)

正如thinksteep所说,你可以尝试:

Map<String, Object> env = new HashMap<String, Object>();
env.put(JMXConnectorServerFactory.PROTOCOL_PROVIDER_PACKAGES,              "com.sun.jmx.remote.protocol");

以后你可以联系:

jmxc = JMXConnectorFactory.connect(new JMXServiceURL(address), env);