如果部署请做好一下所有描述内容的备份。更改内容如下:
1、修改tomcat内conf/context.xml文件 <Context privileged="true">
privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet

2、项目引入tomcat目录lib下的 catalina.jar

3、在 cn.com.eol.admin.web 目录下新建 servlet 目录,创建 RestartTomcatServlet 类

4、在web.xml 下添加servlet引用,如下:
<servlet>
    <servlet-name>restartTomcatServlet</servlet-name>
    <servlet-class>cn.com.eol.admin.web.servlet.RestartTomcatServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>restartTomcatServlet</servlet-name>
    <url-pattern>/servlet/restartTomcat</url-pattern>
</servlet-mapping>

5、修改 cn.com.eol.admin.web.collecion 目录下的 DatabaseCollection类、ReportModelCollection类

6、修改 view/system/database 目录下的 list.jsp

 

另附重启tomcat的servlet代码:

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.catalina.ContainerServlet;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.Wrapper;

/**
 * 重启tomcat
 */
public class RestartTomcatServlet extends HttpServlet implements ContainerServlet{

    private static final long serialVersionUID = 1L;

    private Wrapper wrapper = null;
    
    private Context context = null;
    
    @Override
    public Wrapper getWrapper() {
        return this.wrapper;
    }

    @Override
    public void setWrapper(Wrapper wrapper) {
        if (wrapper != null)
        {
            this.wrapper = wrapper;
            this.context = (Context) this.wrapper.getParent();
        }
    }

    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        if (!this.context.getParent().getState().isAvailable()) {
            throw new IllegalStateException("standardContext.notStarted");
        }
        try {
            this.context.stop();
        } catch (LifecycleException e) {
            e.printStackTrace();
        }
        try {
            this.context.start();
        } catch (LifecycleException e) {
            e.printStackTrace();
        }
        String path = req.getContextPath();
        String redirectPath = 
               req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() 
               + path + "/database/databaseList.do";
        resp.getWriter().write("<script language='javascript'>window.alert('restart success!')</script>");
        resp.getWriter().write("<script>window.location ='"+redirectPath+"'</script>");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doGet(req, resp);
    }

}

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐