1 16 17 18 package org.apache.webapp.admin.server; 19 20 import java.util.Iterator ; 21 import java.util.Locale ; 22 import java.io.IOException ; 23 import javax.servlet.ServletException ; 24 import javax.servlet.http.HttpServletRequest ; 25 import javax.servlet.http.HttpServletResponse ; 26 import javax.servlet.http.HttpSession ; 27 import org.apache.struts.action.Action; 28 import org.apache.struts.action.ActionErrors; 29 import org.apache.struts.action.ActionForm; 30 import org.apache.struts.action.ActionForward; 31 import org.apache.struts.action.ActionMapping; 32 import javax.management.Attribute ; 33 import javax.management.MBeanServer ; 34 import javax.management.MBeanServerFactory ; 35 import javax.management.QueryExp ; 36 import javax.management.Query ; 37 import javax.management.ObjectInstance ; 38 import javax.management.ObjectName ; 39 import org.apache.webapp.admin.ApplicationServlet; 40 import org.apache.webapp.admin.TomcatTreeBuilder; 41 import org.apache.struts.util.MessageResources; 42 43 50 51 public final class SaveServerAction extends Action { 52 53 56 private MBeanServer mBServer = null; 57 58 60 61 76 public ActionForward execute(ActionMapping mapping, 77 ActionForm form, 78 HttpServletRequest request, 79 HttpServletResponse response) 80 throws IOException , ServletException { 81 82 HttpSession session = request.getSession(); 84 Locale locale = getLocale(request); 85 MessageResources resources = getResources(request); 86 87 try { 89 mBServer = ((ApplicationServlet) getServlet()).getServer(); 90 } catch (Throwable t) { 91 throw new ServletException 92 ("Cannot acquire MBeanServer reference", t); 93 } 94 95 ActionErrors errors = new ActionErrors(); 96 97 if (!errors.isEmpty()) { 99 saveErrors(request, errors); 100 return (new ActionForward(mapping.getInput())); 101 } 102 103 ServerForm sform = (ServerForm) form; 104 String sObjectName = sform.getObjectName(); 105 ObjectName soname = null; 107 try { 108 soname = new ObjectName (sObjectName); 109 } catch (Throwable t) { 110 throw new ServletException 111 ("Cannot acquire Server MBean reference ", t); 112 } 113 114 115 String attribute = null; 117 try{ 118 attribute = "port"; 119 int port = 0; 120 try { 121 port = Integer.parseInt(sform.getPortNumberText()); 122 } catch (Throwable t) { 123 port = 0; 124 } 125 mBServer.setAttribute(soname, 126 new Attribute ("port", new Integer (port))); 127 if (port < 1024) { 130 request.setAttribute("warning", "server.port.warning"); 131 } 132 133 attribute = "shutdown"; 134 mBServer.setAttribute(soname, 135 new Attribute ("shutdown", sform.getShutdownText())); 136 137 } catch(Exception e){ 138 getServlet().log 139 (resources.getMessage(locale, "users.error.attribute.set", 140 attribute), e); 141 response.sendError 142 (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 143 resources.getMessage(locale, "users.error.attribute.set", 144 attribute)); 145 return (null); 146 } 147 148 session.removeAttribute(mapping.getAttribute()); 150 return (mapping.findForward("Save Successful")); 151 } 152 } 153 | Popular Tags |