生成部署项目的XML文件

开发的时候在MyEclipse发布项目到tomcat比较耗时,有一种简单的方法是xml方式

在Tomcat安装目录生成\conf\Catalina\localhost\${baseDir}.xml

package com.javaweb.utils;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.servlet.ServletContext;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;

public class DeployUtil {

    private static Logger logger = Logger.getLogger(DeployUtil.class);

    public static String getExtentionName(String fileName) {
        return fileName.substring(fileName.lastIndexOf("."));
    }

    /**
     * 生成项目部署xml配置文件</br>
     * ${tomcat}\conf\Catalina\localhost\baseDir.xml
     * @param baseDir   项目访问名称
     * @param targetDir 项目路径
     * @return
     */
    public static Boolean createConfigXML(String baseDir, String targetDir) {
        ServletContext sctx = ServletActionContext.getServletContext();
        if(null == sctx){
            //throw new RuntimeException("ServletContext is null");
        }
        //String realPath = sctx.getRealPath(File.separator);
        String realPath = "D:\\Program Files\\apache-tomcat-6.0.30\\apache-tomcat-6.0.30\\conf\\Catalina";
        File configFile = new File(realPath).getParentFile().getParentFile();
        
        String tempFile = File.separator + "conf" + File.separator + "Catalina" + File.separator + "localhost";
        configFile = new File(configFile, tempFile);
        this.createDir(configFile);

        File newFile = new File(configFile, baseDir + ".xml");

        StringBuilder virtualPathXML = new StringBuilder();
        virtualPathXML.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
        virtualPathXML.append("<Context docBase=\"");
        virtualPathXML.append(targetDir);
        virtualPathXML.append("\" path=\"/");
        virtualPathXML.append(baseDir);
        virtualPathXML.append("\" reloadable=\"true\"></Context>");

        FileWriter fileWriter;
        try {
            fileWriter = new FileWriter(newFile);
            fileWriter.write(virtualPathXML.toString());
            fileWriter.flush();
        } catch (IOException e) {
            logger.error("Create virtual path for upload file wrong." + e);
            return Boolean.FALSE;
        }
        
        return Boolean.TRUE;
    }
    
    public static void createDir(File file) {
        if (!file.exists()) {
            file.mkdirs();
        }
    }
    
    public static void main(String[] args) {
        createConfigXML("demo", "D:\\zhang\\demo");
    }
}

运行后自动的生成xml文件,在Tomcat\conf\Catalina\localhost\demo.xml里内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:\zhang\demo" path="/demo" reloadable="true"></Context>

 

posted @ 2016-07-23 00:26  yzuzhang  阅读(493)  评论(0)    收藏  举报