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);
    }
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM