zoukankan      html  css  js  c++  java
  • webService接口提供给别的系统调用

    我们项目与其他系统集成的目录结构,这里的都是提供给对外系统调用的webService接口。

    下面,把关于这些内容de文件一一贴出来:

    module-ws.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://cxf.apache.org/jaxws
      http://cxf.apache.org/schemas/jaxws.xsd">
      <import resource="classpath*:META-INF/cxf/cxf.xml"/>
      <import resource="classpath*:META-INF/cxf/cxf-servlet.xml"/>
      <import resource="classpath*:META-INF/cxf/cxf-extension-xml.xml"/>
      <bean id="mdsBaseLineImportWsServiceImpl" class="avicit.mms.pdm.mdsbaselineimportws.ws.impl.MdsBaseLineImportWsServiceImpl"></bean>
      <jaxws:endpoint id="mdsBaseLineImportWsService" implementor="#mdsBaseLineImportWsServiceImpl" address="/mdsBaseLineImportWsService">
      </jaxws:endpoint>
      <!--测试访问地址 http://localhost:9080/mms/ws/mdsBaseLineImportWsService?wsdl-->//这里是别的系统调用的地址
    </beans>

    MdsBaseLineImportWsService.java

    package avicit.mms.pdm.mdsbaselineimportws.ws;

    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebResult;
    import javax.jws.WebService;

    @WebService(targetNamespace = "http://ws.mdsbaselineimportws.pdm")     //webService接口的命名空间,不过不一定需要,本次接口集成的过程中,没用到
    public interface MdsBaseLineImportWsService {
      @WebMethod(operationName = "addBaseLine")
      @WebResult(name = "result")
      public String addBaseLine(@WebParam(name = "baseLineInfoXml") String baseLineInfoXml) throws Exception;
    }

    MdsBaseLineImportWsServiceImpl.java

    import avicit.mms.mds.mdsbaselineimport.dto.MdsBaselineImportDTO;
    import avicit.mms.mds.mdsbaselineimport.service.MdsBaselineImportService;
    import avicit.mms.pdm.mdsbaselineimportws.ws.MdsBaseLineImportWsService;
    import avicit.platform6.commons.utils.JsonHelper;
    import com.alibaba.druid.support.json.JSONUtils;
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    import com.fasterxml.jackson.core.type.TypeReference;
    import org.json.XML;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;

    import javax.jws.WebService;
    import java.text.SimpleDateFormat;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    @WebService(endpointInterface = "avicit.mms.pdm.mdsbaselineimportws.ws.MdsBaseLineImportWsService", targetNamespace = "http://ws.mdsbaselineimportws.pdm")
    public class MdsBaseLineImportWsServiceImpl implements MdsBaseLineImportWsService {
      private static final Logger logger = LoggerFactory.getLogger(MdsBaseLineImportWsServiceImpl.class);
      @Autowired
      private MdsBaselineImportService mdsBaselineImportService;

      @Override
      public String addBaseLine(String baseLineInfoXml) throws Exception {
        Map<String, Object> returnInfo = new HashMap<String, Object>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Map<String, Object> jsonData = new HashMap<String, Object>();
        try {
          jsonData = (Map<String, Object>) JSONObject.parse(XML.toJSONObject(baseLineInfoXml).get("BaseLine").toString());
        } catch (Exception e) {
          logger.info("xml格式错误***************");
          e.printStackTrace();
          returnInfo.put("flag", "0");
          returnInfo.put("ErrorMessage", "xml格式错误:" + e.getMessage());
          return JSONUtils.toJSONString(returnInfo);
        }

        if (null == XML.toJSONObject(baseLineInfoXml).get("BaseLine")) {
          logger.info("xml中不包含BaseLine节点");
          returnInfo.put("flag", "0");
          returnInfo.put("ErrorMessage", "xml中不包含BaseLine节点");
          return JSONUtils.toJSONString(returnInfo);
        }

        // 转换成List之前需判断字符串中是否已包含[],如果没有,转换时会发生异常
        String jsonStr = JSONArray.toJSONString(jsonData);
        if (!jsonStr.startsWith("[")) {
          jsonStr = "[" + jsonStr + "]";
        }

        List<Map<String, Object>> data = JsonHelper.getInstance().readValue(jsonStr, sdf, new TypeReference<List<Map<String, Object>>>() {
        });
        if (null != data && data.size() > 0) {
          try {
            for (Map<String, Object> map : data) {
              MdsBaselineImportDTO dto = new MdsBaselineImportDTO();
              dto.setPdmBaselineCode((String) map.get("Number"));
              dto.setPdmBaselineName((String) map.get("Name"));
              dto.setPdmBaselineType((String) map.get("Type"));
              dto.setPdmBaselineStatus((String) map.get("State"));
              dto.setPdmLastModified(sdf.parse((String) map.get("LastModified")));
              dto.setProductName((String) map.get("Product"));
              dto.setIsImportedMes("N");
              mdsBaselineImportService.insertMdsBaselineImport(dto);
            }
          } catch (Exception e) {
            logger.info("插入基线表MDS_BASELINE_IMPORT出错");
            e.printStackTrace();
            returnInfo.put("flag", "0");
            returnInfo.put("ErrorMessage", "插入基线表MDS_BASELINE_IMPORT出错:" + e.getMessage());
            return JSONUtils.toJSONString(returnInfo);
          }

          return JSONUtils.toJSONString(returnInfo);
        } else {
          returnInfo.put("flag", "0");
          returnInfo.put("msg", "接口数据格式中PBOM值为空,请核实");
          return JSONUtils.toJSONString(returnInfo);
        }
      }
    }

  • 相关阅读:
    JS中的call、apply、bind 用法解疑
    style、currentStyle、getComputedStyle(不同浏览器获取css样式)区别介绍
    Ajax 整理总结(进阶)
    Ajax 整理总结(入门)
    js_面向对象编程
    李炎恢bootstarp_项目实战__瓢城企业(注释+源码)
    bootstrap学习笔记--bootstrap排版类的使用
    bootstrap学习笔记--bootstrap网格系统
    对mysql快速批量修改,查重
    MyISAM 和 InnoDB 的区别与优化
  • 原文地址:https://www.cnblogs.com/1012hq/p/11170961.html
Copyright © 2011-2022 走看看