SSM框架下查看项目依赖版本信息

查看项目classpath路径下的版本信息x.xml文件并解析,通过servlet重定向

servlet代码

import java.io.IOException;
import java.io.PrintWriter;

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

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.changx.cbf.domain.entity.version.War;
import com.changx.cbf.service.IReadVersionService;

import net.sf.json.JSONObject;


public class ReadVersionServlet extends HttpServlet{
    private IReadVersionService _readVersionService;

    /**
     * (non-Javadoc)
     * @see javax.servlet.GenericServlet#init()
     */
    @Override
    public void init () throws ServletException {
        super.init ();
        ServletContext servletContext = this.getServletContext ();
        WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext (servletContext);
        _readVersionService = (IReadVersionService) ctx.getBean ("readVersionService");
    }

    /**
     * (non-Javadoc)
     * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    @Override
    protected void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost (req, resp);
    }

    /**
     * (non-Javadoc)
     * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    @Override
    protected void doPost (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        War war = _readVersionService.getVersionContent ();
        JSONObject jsonObject = JSONObject.fromObject (war);
        resp.setCharacterEncoding("UTF-8");
        resp.setContentType("text/json; charset=utf-8");
        String jsonStr = jsonObject.toString ();
        PrintWriter out = null;
        try {
            out = resp.getWriter();
            out.write(jsonStr);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (out != null) {
                out.close();
            }
        }
    }

    /**
     * (non-Javadoc)
     * @see javax.servlet.GenericServlet#destroy()
     */
    @Override
    public void destroy () {
        super.destroy ();
    }
}

服务实现代码

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.ResourceUtils;

import com.changx.cbf.domain.dto.version.DependencyDto;
import com.changx.cbf.domain.dto.version.WarDto;
import com.changx.cbf.domain.entity.version.Dependency;
import com.changx.cbf.domain.entity.version.War;
import com.changx.cbf.service.IReadVersionService;

import cbf.changx.cbfutil.file.JaxbUtil;

/**
 *<p>类说明:
 * 
 *
 *@author:zouxianglin
 *@version 1.00
 *
 */
public class ReadVersionServiceImpl implements IReadVersionService {
    /**
     * _logger:TODO
     * 
     * @since Ver 1.1
     */
    Log _logger = LogFactory.getLog (ReadVersionServiceImpl.class);

    /**
     * (non-Javadoc)
     * @see com.changx.cbf.service.IReadVersionService#getVersionContent()
     */
    @SuppressWarnings ("resource")
    @Override
    public War getVersionContent () {
        try {
            //获取当前应用classpath路径下的version文件
            //Thread.currentThread ().getContextClassLoader ().getResource ("/").getPath ();
            File file = ResourceUtils.getFile ("classpath:version.xml");
            InputStream in = new FileInputStream (file);
            InputStreamReader read = new InputStreamReader (in, "utf-8");
            BufferedReader bufferedReader = new BufferedReader (read);
            StringBuffer xmlContent = new StringBuffer ();
            String content = "";
            while((content = bufferedReader.readLine ()) != null){
                xmlContent.append (content);
            }
            read.close ();
            //通过工具类把xml转换成bean
            WarDto warDto = JaxbUtil.converyToJavaBean (xmlContent.toString (), WarDto.class);

            War war = new War ();
            List<Dependency> dependencies = new ArrayList <Dependency> ();
            //把解析出来的数据添加到实体存储
            String warName = warDto.getWarName ();
            String warVersion = warDto.getWarVersion ();
            String updateLog = warDto.getUpdateLog ();
            war.setWarName (warName);
            war.setWarVersion (warVersion);
            war.setUpdateLog (updateLog);
            List<DependencyDto> list = warDto.getDependencies ();
            for (DependencyDto dependencyDto : list) {
                Dependency dependency = new Dependency();
                String groupId = dependencyDto.getGroupId ();
                String artifactId = dependencyDto.getArtifactId ();
                String version = dependencyDto.getVersion ();
                dependency.setGroupId (groupId);
                dependency.setArtifactId (artifactId);
                dependency.setVersion (version);
                dependencies.add (dependency);
            }
            war.setDependencies (dependencies);
            return war;
        }
        catch (Exception e) {
            _logger.error (e);
            e.printStackTrace();
        }
        return null;
    }

}

xml和实体转换工具类

import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

public class JaxbUtil {

    public static String convertToXml(Object obj) throws JAXBException {  
        return convertToXml(obj, "UTF-8");  
    }  

    /** 
     * JavaBean转换成xml 
     * @param obj 
     * @param encoding  
     * @return  
     * @throws JAXBException 
     */  
    public static String convertToXml(Object obj, String encoding) throws JAXBException {  
        String result = null;  
        JAXBContext context = JAXBContext.newInstance(obj.getClass());  
        Marshaller marshaller = context.createMarshaller();  
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);  
        marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);  
        StringWriter writer = new StringWriter();  
        marshaller.marshal(obj, writer);  
        result = writer.toString();  
        return result;  
    }  

    /** 
     * xml转换成JavaBean 
     * @param xml 
     * @param c 
     * @return 
     * @throws JAXBException 
     */  
    @SuppressWarnings("unchecked")  
    public static <T> T converyToJavaBean(String xml, Class<T> c) throws JAXBException {  
        T t = null;  
        JAXBContext context = JAXBContext.newInstance(c);  
        Unmarshaller unmarshaller = context.createUnmarshaller();  
        t = (T) unmarshaller.unmarshal(new StringReader(xml));  
        return t;  
    }  

}

js中ajax请求

$.ajax({
                    method:'post',
                    dataType : "json",
                    url:appUrl + '/lookVersion',
                    success:function(data){
                        $('#versionDialog').dialog('open').dialog('setTitle', appName + "应用版本查询 ");
                        $("#versionForm").form("load", data);
                        $('#dependenciesTable').datagrid('loadData', data.dependencies);
                    },
                    error:function(){
                        $.messager.alert('提示', "查看版本信息失败!", 'info');
                    },
                    fail:function(){
                        $.messager.alert('提示', "查看版本信息失败!", 'info');
                    }
                });

web.xml配置

    <servlet>
        <servlet-name>ReadVersionServlet</servlet-name>
        <servlet-class>com.xxx.xxx.manager.servlet.ReadVersionServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ReadVersionServlet</servlet-name>
        <url-pattern>/lookVersion</url-pattern>
    </servlet-mapping>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值