Tomcat重启解决办法
如果部署请做好一下所有描述内容的备份。更改内容如下:1、修改tomcat内conf/context.xml文件 <Context privileged="true">privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet2、项目引入tomcat目录lib下的 catalina.jar3、在 cn.com.e
如果部署请做好一下所有描述内容的备份。更改内容如下:
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);
}
}
更多推荐
所有评论(0)