2014-04-22 2 views
0

Пытается подключить простой мониторинг JMX. Управляемые приложения и средства мониторинга находятся на одном сервере. При попытке подключения сообщение об ошибкеjmx не удается подключиться к localhost

00: 30: 55610 FATAL HTTP-8080-6 SiteListener: makeJmxConnection: 99 - java.io.IOException: Не удалось получить RMIServer окурок: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection отказался от хоста: localhost; вложенного исключения: java.net.ConnectException: Соединение отклонено] в javax.management.remote.rmi.RMIConnector.connect (Unknown Source) в javax.management.remote.JMXConnectorFactory.connect (Неизвестный источника) в ком .masSiteListener.makeJmxConnection (SiteListener.java:93) в com.masSiteListener.getMBeanConnect (SiteListener.java:73) в com.masSiteListener.contextInitialized (SiteListener.java:51) в org.apache.catalina. core.StandardContext.listenerStart (StandardContext.java:3972) на org.apache.catalina.core.StandardContext.start (StandardContext.java:4467) на org.apache.catalina.core.StandardContext.r eload (StandardContext.java:3228) на org.apache.catalina.manager.ManagerServlet.reload (ManagerServlet.java:918) на org.apache.catalina.manager.HTMLManagerServlet.reload (HTMLManagerServlet.java:545) на org.apache.catalina.manager.HTMLManagerServlet.doGet (HTMLManagerServlet.java:121) на javax.servlet.http.HttpServlet.service (HttpServlet.java:617) в javax.servlet.http.HttpServlet.service (HttpServlet.java:717) при org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290) на org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) наorg.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) на org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) на org.apache.catalina.authenticator .AuthenticatorBase.invoke (AuthenticatorBase.java:558) на org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) на org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java : 102) на org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) на org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.jav а: 298) на org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:857) в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:588) в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489) в java.lang.Thread.run (Unknown Source) Вызванный: javax.naming.ServiceUnavailableException [за исключением корня java.rmi.ConnectException: подключение отказалось от хоста: localhost; Вложенное исключение: java.net.ConnectException: Connection failed] at com.sun.jndi.rmi.registry.RegistryContext.lookup (Неизвестный источник) at com.sun.jndi.toolkit.url.GenericURLContext.lookup (Неизвестно) Источник) на javax.naming.InitialContext.lookup (Неизвестный источник) на javax.management.remote.rmi.RMIConnector.findRMIServerJNDI (Неизвестно Источник) на javax.management.remote.rmi.RMIConnector.findRMIServer (Неизвестный источник) ... 26 more Причинено: java.rmi.ConnectException: Соединение отклонено для хоста: localhost; вложенное исключение: java.net.ConnectException: Соединение отклонено в sun.rmi.transport.tcp.TCPEndpoint.newSocket (Unknown Source) в sun.rmi.transport.tcp.TCPChannel.createConnection (Unknown Source) на солнце .rmi.transport.tcp.TCPChannel.newConnection (Неизвестный источник) в sun.rmi.server.UnicastRef.newCall (Неизвестный источник) в sun.rmi.registry.RegistryImpl_Stub.lookup (Неизвестный источник) ... 31 подробнее Причина: java.net.ConnectException: соединение отклонено в java.net.PlainSocketImpl.socketConnect (собственный метод) в java.net.AbstractPlainSocketImpl.doConnect (Неизвестный источник) в java.net.AbstractPlainSocketImpl.connectToAddress (Неизвестный источник) на jav a.net.AbstractPlainSocketImpl.connect (Неизвестный источник) в java.net.SocksSocketImpl.connect (Неизвестный источник) в java.net.Socket.connect (Неизвестный источник) в java.net.Socket.connect (Неизвестный источник) в java.net.Socket. (Unknown Source) в java.net.Socket. (Unknown Source) в sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket (Неизвестный источник) в sun.rmi.transport. proxy.RMIMasterSocketFactory.createSocket (Неизвестный источник) ... 36 более

на сервере, открытый доступ, так

private static void startJmxServer() throws MalformedURLException, IOException { 

     Map<String, Object> props = new HashMap<String, Object>(); 
     RemouteAuthentificator auth = new RemouteAuthentificator(); 
     props.put("jmx.remote.authenticator", auth); 

     JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:22414/MServer"); 
     MBeanServer mbeanSrv = ManagementFactory.getPlatformMBeanServer(); 
     JMXConnectorServer server = JMXConnectorServerFactory.newJMXConnectorServer(url, props, mbeanSrv); 
     server.start(); 
     log.info("JMX RMI Agent has been bound on address: " + url); 
    } 

В административном инструменте под Tomcat, пытаясь соединить

static private MBeanServerConnection makeJmxConnection(String objectName) 
    { 
    // objectName = “MServer:name=Settings”; 
     MBeanServerConnection mConnect = null; 
     try 
     { 
      String[] credentials = new String[] {"server", "password"}; 
      Map<String, String[]> props = new HashMap<String, String[]>(); 
      props.put("jmx.remote.credentials", credentials); 

      JMXServiceURL url = new JMXServiceURL(“service:jmx:rmi:///jndi/rmi://localhost:22414/MServer”); 
      jmxc = JMXConnectorFactory.connect(url, props); 
      mConnect = jmxc.getMBeanServerConnection(); 
      mbeanName = new ObjectName(objectName); 
     } 
     catch(Exception e) 
     { 
      log.fatal("", e); 
     } 

     return mConnect; 
    } 

И попытался подключиться через внешний IP. Результат тот же.

+0

бы вы любезно поделиться вам подключение к локальному хосту Исходный код –

ответ

0

я не вижу, где вы установите ваше положить number.where это вам это короткий код

String host = "localhost"; // or some x.y.z 
int port = setyourPortNumber; 
String url = "service:jmx:rmi:///jndi/rmi://localhost:22414/MServer"; // where you get services 

я хочу это поможет вам получить идею

+0

Не совсем понимаю. Первый сервер начинается с первого листинга. Затем он запускает инструменты мониторинга, начиная со второго листинга. Конечный URL в этом и в другом случае, переменная JMXServiceURL url –

Смежные вопросы