<%@ page import=" org.apache.catalina.*, org.apache.catalina.core.*, org.apache.coyote.tomcat4.CoyoteConnector "%> <% StandardServer server = (StandardServer)ServerFactory.getServer(); Service[] services = server.findServices(); %> <% for( int i = 0; i < services.length; ++i ){ StandardService service = (StandardService)services[i]; //try { // service.stop(); // service.start(); //} //catch( Exception ex ){ // //} Connector[] connectors = service.findConnectors(); for( int j = 0; j < connectors.length; ++j ){ try { Connector connector_c = connectors[j]; CoyoteConnector connector = (CoyoteConnector)connector_c; if( "org.apache.jk.server.JkCoyoteHandler".equals(connector.getProtocolHandlerClassName()) ){ if( request.getParameter("cmd") != null ){ if( service.toString().equals(request.getParameter("service")) && connector.toString().equals(request.getParameter("connector")) ){ if( "start".equals(request.getParameter("cmd")) ){ if( ! connector.isAvailable() ){ try{ connector.start(); } catch( Exception ex ){ ex.printStackTrace(); } } } else if( "stop".equals(request.getParameter("cmd")) ){ if( connector.isAvailable() ){ connector.stop(); } } else if( "restart".equals(request.getParameter("cmd")) ){ if( connector.isAvailable() ){ try { connector.stop(); } catch( Exception ex ){ ex.printStackTrace(); } } Thread.currentThread().sleep(100); try{ connector.start(); } catch( Exception ex ){ ex.printStackTrace(); } } response.sendRedirect(request.getRequestURI()); } } boolean started = connector.isAvailable(); %> <% } } catch( Exception ex ){ } } } %>
Service Handler Port Start Stop Restart
<%= service %> <%= connector.getProtocolHandlerClassName() %> <%= connector.getPort() %> <% try{ java.net.Socket sock = new java.net.Socket("localhost",connector.getPort()); sock.close(); %> up <% } catch( Exception ex ){ %> down <% } %> <% if( started ){ %> started <% } else{ %> start <% } %> <% if( ! started ){ %> stopped <% } else{ %> stop <% } %> restart