Пытается подключить простой мониторинг 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. Результат тот же.
бы вы любезно поделиться вам подключение к локальному хосту Исходный код –