diff --git a/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/startup/Bootstrap.java b/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/startup/Bootstrap.java index 3fa90b1..92abf2e 100644 --- a/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/startup/Bootstrap.java +++ b/openesb-standalone-bootstrap/src/main/java/net/openesb/standalone/startup/Bootstrap.java @@ -136,6 +136,7 @@ public class Bootstrap { throws Exception { String errMsg = null; + JMXConnector jmxConn = null; try { Map env = new HashMap(); String[] creds = {"admin", "admin"}; @@ -144,18 +145,23 @@ public class Bootstrap { JMXServiceURL serviceURL = new JMXServiceURL( String.format(DEFAULT_SERVICE_URL, DEFAULT_INSTANCE_PORT)); - JMXConnector jmxConn = JMXConnectorFactory.connect(serviceURL, env); + jmxConn = JMXConnectorFactory.connect(serviceURL, env); MBeanServerConnection mbsConn = jmxConn.getMBeanServerConnection(); + ObjectName fwMBeanName = new ObjectName("net.open-esb.standalone", "instance", DEFAULT_INSTANCE_NAME); mbsConn.invoke(fwMBeanName, "stop", new Object[0], new String[0]); - +/* } catch (NumberFormatException nfEx) { - mLog.log(Level.SEVERE, "Invalid JMX connector port value. {0}", nfEx.getMessage()); + mLog.log(Level.SEVERE, "Invalid JMX connector port value. {0}", nfEx.getMessage());*/ } catch (javax.management.MBeanException mbEx) { errMsg = mbEx.getTargetException().toString(); } catch (Throwable t) { errMsg = t.toString(); + } finally { + if (jmxConn != null) { + jmxConn.close(); + } } if (errMsg != null) { diff --git a/openesb-standalone-container/src/main/java/net/openesb/standalone/node/internal/InstanceNode.java b/openesb-standalone-container/src/main/java/net/openesb/standalone/node/internal/InstanceNode.java index da1fc60..b7dd136 100644 --- a/openesb-standalone-container/src/main/java/net/openesb/standalone/node/internal/InstanceNode.java +++ b/openesb-standalone-container/src/main/java/net/openesb/standalone/node/internal/InstanceNode.java @@ -43,6 +43,8 @@ public class InstanceNode implements Node { private final Environment environment; + private JMXService jMXService; + public InstanceNode () { if(LOG.isLoggable(Level.INFO)) { LOG.log(Level.INFO, I18NBundle.getBundle().getMessage( @@ -82,7 +84,9 @@ public class InstanceNode implements Node { long startTime = System.currentTimeMillis(); // Get the start Time - injector.getInstance(JMXService.class).start(); + jMXService = injector.getInstance(JMXService.class); + jMXService.start(); + injector.getInstance(FrameworkService.class).start(); injector.getInstance(HttpServer.class).start(); @@ -129,7 +133,7 @@ public class InstanceNode implements Node { injector.getInstance(HttpServer.class).stop(); injector.getInstance(FrameworkService.class).stop(); - injector.getInstance(JMXService.class).stop(); + jMXService.stop(); if(LOG.isLoggable(Level.INFO)) { LOG.log(Level.INFO, I18NBundle.getBundle().getMessage(