2012-01-25 2 views
1

Мне нужно подключить java-приложение к серверу MBean, но мне не удается заставить JMXConnector работать.Получение NoInitialContextException при подключении 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. Никаких связанных фляг не добавлено.

Любые идеи о том, что я делаю неправильно здесь? Буду признателен за любую оказанную помощь.

ответ

0

Вы не указали, какой сервер вы пытаетесь подключить, но вот пример для weblogic. Я подозреваю, что ваш JMXServiceURL неверен, он изменяется на основе Mbeanserver, который вы пытаетесь подключить.

+0

Хм ... Я не думаю, что так. URL был указан мне, и он работает с JConsole. Глядя на него, сервер действительно weblogic (он написан в URL-адресе). – elite5472

+0

Кажется, что вам не хватает javax.management.remote.JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote", в среде. Вы попробовали это? – kosa

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); 
Смежные вопросы