1 12 13 package org.apache.tomcat.servlets.jmxremote; 14 15 16 17 import java.io.IOException ; 18 19 import java.rmi.registry.LocateRegistry ; 20 21 import java.rmi.registry.Registry ; 22 23 24 25 import javax.management.MBeanServer ; 26 27 import javax.management.MBeanServerFactory ; 28 29 import javax.management.remote.JMXConnectorServer ; 30 31 import javax.management.remote.JMXConnectorServerFactory ; 32 33 import javax.management.remote.JMXServiceURL ; 34 35 import javax.servlet.ServletConfig ; 36 37 import javax.servlet.ServletException ; 38 39 import javax.servlet.http.HttpServlet ; 40 41 import javax.servlet.http.HttpServletRequest ; 42 43 import javax.servlet.http.HttpServletResponse ; 44 45 46 47 49 50 51 86 87 public class JmxRemoteServlet extends HttpServlet { 88 89 JMXConnectorServer cntorServer = null; 90 91 92 93 public void init(ServletConfig conf) throws ServletException { 94 95 97 super.init(conf); 98 99 100 101 MBeanServer mBeanServer = null; 102 103 104 105 Registry reg=null; 106 107 108 109 111 112 113 114 115 try { 116 117 if( reg==null ) 118 119 reg=LocateRegistry.createRegistry(1099); 120 121 } catch( Throwable t ) { 122 123 log("Can't start registry - it may be already started: " + t); 124 125 } 126 127 128 129 try { 130 131 mBeanServer = null; 132 133 if (MBeanServerFactory.findMBeanServer(null).size() > 0) { 134 135 mBeanServer = 136 137 (MBeanServer ) MBeanServerFactory.findMBeanServer(null).get(0); 138 139 } else { 140 141 mBeanServer = MBeanServerFactory.createMBeanServer(); 142 143 } 144 145 } catch( Throwable t ) { 146 147 log("Can't get the mbean server " + t); 148 149 return; 150 151 } 152 153 154 155 try { 156 157 JMXServiceURL address = new JMXServiceURL ("service:jmx:rmi://rmiHost/jndi/rmi://localhost:1099/jndiPath"); 158 159 cntorServer = 160 161 JMXConnectorServerFactory.newJMXConnectorServer(address, null, mBeanServer); 162 163 cntorServer.start(); 164 165 } catch (Throwable e) { 166 167 log("Can't register jmx connector ", e); 168 169 } 170 171 } 172 173 174 175 180 181 public void destroy() { 182 183 try { 184 185 if( cntorServer != null ) cntorServer.stop(); 186 187 } catch (Exception e) { 188 189 e.printStackTrace(); 190 191 } 192 193 } 194 195 196 197 public void service(HttpServletRequest req, HttpServletResponse resp) 198 199 throws ServletException , IOException 200 201 { 202 203 resp.sendError(404); 204 205 } 206 207 208 209 211 213 215 217 218 219 } 220 221 | Popular Tags |