webservice调试解析、soupui使用、xml代码开发

做项目的时候,经常遇到接口是webservice提供的,这个时候就需要会进行调试;
调试可以用soapui、postman/apipost等同类工具。
理解:webservice本身可以理解为一种xml格式,具有自描述特点的http post方式请求。可以完全适用http方式去调用。所以不要有任何压力。

webservice的几种解析调用方式

方式优势缺点上手难度链接
SoupUi只要获取到wsdl的xml文件的就可以一键解析出所有的方法;非常简单;软件支持windows、mac、linux需要多安装一个软件而已最简单,需要安装soapuisoupui.org download
Postman软件简单常见需要手工解析wsdl中的方法,请求参数、方式、手工粘贴到postman中,比较繁琐。首个接口难道大,webservice本质上就是一种特殊的Http请求,使用Http相关的工具完全适用第一个方法难度大postmanapipost
wsimportjava jdk自带需要懂jdk命令,不直观,有一定难度。最大使用JAVA命令wsimport生成WebService接口调用代码](https://blog.csdn.net/mc_linfen/article/details/83275184)

一、 webservice介绍

1.1.1 wsdl

wsdl:webservice中的核心概念,所有方法定义都在wsdl中,全程 webservice define language;
soap协议:soap协议是基于http协议,限制使用数据内容为xml,请求方式必须是Http Post的一个http协议的请求。具有:soap1.1、soap1.2两个版本。

wsdl在浏览器中打开示意图
wsdl保存到电脑桌面上面

1.1.2 webxml.com.cn公开的wsdl

上面几个几个wsdl的示例,这里介绍几个公开的wsdl链接示例,见公开网站 webxml.com.cn

wsdl作用endpoint
MobileCodeWS国内手机号归属地归属地wsdl网站
WeatherWS城市天气2500多个城市天气预报 WEB服务
ChildService.xmlxx免疫规划系统
baseInfoWebService.xmlxx冷链系统
externalWebService.xmlxx冷链系统
medicalWebService.xmlxx冷链系统
为防止,wsdl连接失效,我们copy一个wsdl定义:

1.1.3、wsdl示例1-baseInfoWebService.xml

baseInfoWebService.xml
原始地址(不可访问):https://yxxx.xa.gov.cn/ws/services/baseInfoWebService?wsdl
可访问地址:baseInfoWebService

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns="http://ws.cybermax.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" targetNamespace="http://ws.cybermax.com">
    <wsdl:documentation>baseInfoWebService</wsdl:documentation>
    <wsdl:types>
        <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://ws.cybermax.com">
            <xs:element name="baseInfoWebServiceException">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="baseInfoWebServiceException" nillable="true" type="ns:Exception"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:complexType name="Exception">
                <xs:sequence>
                    <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string"/>
                </xs:sequence>
            </xs:complexType>
            <xs:element name="getZeroStockSets">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getZeroStockSetsResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getColdStorageEquips">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getColdStorageEquipsResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getBillValidTimes">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getBillValidTimesResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getAgents">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="getAgentsResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadVmvaccine">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadVmvaccineResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadUnit">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadUnitResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadProduct">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadProductResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadProdSpec">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadProdSpecResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadPack">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadPackResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadNumber">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadNumberResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadKen">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadKenResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadDose">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadDoseResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadCorpration">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadCorprationResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadCascade">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadCascadeResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadBrokenReason">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadBrokenReasonResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadAntigen">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="downloadAntigenResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="addVmColdStorageEquip">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="identity" nillable="true" type="xs:string"/>
                        <xs:element minOccurs="0" name="params" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="addVmColdStorageEquipResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="getBillValidTimesRequest">
        <wsdl:part name="parameters" element="ns:getBillValidTimes"/>
    </wsdl:message>
    <wsdl:message name="getBillValidTimesResponse">
        <wsdl:part name="parameters" element="ns:getBillValidTimesResponse"/>
    </wsdl:message>
    <wsdl:message name="baseInfoWebServiceException">
        <wsdl:part name="parameters" element="ns:baseInfoWebServiceException"/>
    </wsdl:message>
    <wsdl:message name="downloadKenRequest">
        <wsdl:part name="parameters" element="ns:downloadKen"/>
    </wsdl:message>
    <wsdl:message name="downloadKenResponse">
        <wsdl:part name="parameters" element="ns:downloadKenResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadNumberRequest">
        <wsdl:part name="parameters" element="ns:downloadNumber"/>
    </wsdl:message>
    <wsdl:message name="downloadNumberResponse">
        <wsdl:part name="parameters" element="ns:downloadNumberResponse"/>
    </wsdl:message>
    <wsdl:message name="addVmColdStorageEquipRequest">
        <wsdl:part name="parameters" element="ns:addVmColdStorageEquip"/>
    </wsdl:message>
    <wsdl:message name="addVmColdStorageEquipResponse">
        <wsdl:part name="parameters" element="ns:addVmColdStorageEquipResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadBrokenReasonRequest">
        <wsdl:part name="parameters" element="ns:downloadBrokenReason"/>
    </wsdl:message>
    <wsdl:message name="downloadBrokenReasonResponse">
        <wsdl:part name="parameters" element="ns:downloadBrokenReasonResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadCorprationRequest">
        <wsdl:part name="parameters" element="ns:downloadCorpration"/>
    </wsdl:message>
    <wsdl:message name="downloadCorprationResponse">
        <wsdl:part name="parameters" element="ns:downloadCorprationResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadCascadeRequest">
        <wsdl:part name="parameters" element="ns:downloadCascade"/>
    </wsdl:message>
    <wsdl:message name="downloadCascadeResponse">
        <wsdl:part name="parameters" element="ns:downloadCascadeResponse"/>
    </wsdl:message>
    <wsdl:message name="getZeroStockSetsRequest">
        <wsdl:part name="parameters" element="ns:getZeroStockSets"/>
    </wsdl:message>
    <wsdl:message name="getZeroStockSetsResponse">
        <wsdl:part name="parameters" element="ns:getZeroStockSetsResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadAntigenRequest">
        <wsdl:part name="parameters" element="ns:downloadAntigen"/>
    </wsdl:message>
    <wsdl:message name="downloadAntigenResponse">
        <wsdl:part name="parameters" element="ns:downloadAntigenResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadDoseRequest">
        <wsdl:part name="parameters" element="ns:downloadDose"/>
    </wsdl:message>
    <wsdl:message name="downloadDoseResponse">
        <wsdl:part name="parameters" element="ns:downloadDoseResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadUnitRequest">
        <wsdl:part name="parameters" element="ns:downloadUnit"/>
    </wsdl:message>
    <wsdl:message name="downloadUnitResponse">
        <wsdl:part name="parameters" element="ns:downloadUnitResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadVmvaccineRequest">
        <wsdl:part name="parameters" element="ns:downloadVmvaccine"/>
    </wsdl:message>
    <wsdl:message name="downloadVmvaccineResponse">
        <wsdl:part name="parameters" element="ns:downloadVmvaccineResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadPackRequest">
        <wsdl:part name="parameters" element="ns:downloadPack"/>
    </wsdl:message>
    <wsdl:message name="downloadPackResponse">
        <wsdl:part name="parameters" element="ns:downloadPackResponse"/>
    </wsdl:message>
    <wsdl:message name="downLoadAppScanCodeSetRequest"/>
    <wsdl:message name="downLoadAppScanCodeSetResponse"/>
    <wsdl:message name="getAgentsRequest">
        <wsdl:part name="parameters" element="ns:getAgents"/>
    </wsdl:message>
    <wsdl:message name="getAgentsResponse">
        <wsdl:part name="parameters" element="ns:getAgentsResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadProductRequest">
        <wsdl:part name="parameters" element="ns:downloadProduct"/>
    </wsdl:message>
    <wsdl:message name="downloadProductResponse">
        <wsdl:part name="parameters" element="ns:downloadProductResponse"/>
    </wsdl:message>
    <wsdl:message name="downloadProdSpecRequest">
        <wsdl:part name="parameters" element="ns:downloadProdSpec"/>
    </wsdl:message>
    <wsdl:message name="downloadProdSpecResponse">
        <wsdl:part name="parameters" element="ns:downloadProdSpecResponse"/>
    </wsdl:message>
    <wsdl:message name="getColdStorageEquipsRequest">
        <wsdl:part name="parameters" element="ns:getColdStorageEquips"/>
    </wsdl:message>
    <wsdl:message name="getColdStorageEquipsResponse">
        <wsdl:part name="parameters" element="ns:getColdStorageEquipsResponse"/>
    </wsdl:message>
    <wsdl:portType name="baseInfoWebServicePortType">
        <wsdl:operation name="getBillValidTimes">
            <wsdl:input message="ns:getBillValidTimesRequest" wsaw:Action="urn:getBillValidTimes"/>
            <wsdl:output message="ns:getBillValidTimesResponse" wsaw:Action="urn:getBillValidTimesResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:getBillValidTimesbaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadKen">
            <wsdl:input message="ns:downloadKenRequest" wsaw:Action="urn:downloadKen"/>
            <wsdl:output message="ns:downloadKenResponse" wsaw:Action="urn:downloadKenResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:downloadKenbaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadNumber">
            <wsdl:input message="ns:downloadNumberRequest" wsaw:Action="urn:downloadNumber"/>
            <wsdl:output message="ns:downloadNumberResponse" wsaw:Action="urn:downloadNumberResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:downloadNumberbaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="addVmColdStorageEquip">
            <wsdl:input message="ns:addVmColdStorageEquipRequest" wsaw:Action="urn:addVmColdStorageEquip"/>
            <wsdl:output message="ns:addVmColdStorageEquipResponse" wsaw:Action="urn:addVmColdStorageEquipResponse"/>
        </wsdl:operation>
        <wsdl:operation name="downloadBrokenReason">
            <wsdl:input message="ns:downloadBrokenReasonRequest" wsaw:Action="urn:downloadBrokenReason"/>
            <wsdl:output message="ns:downloadBrokenReasonResponse" wsaw:Action="urn:downloadBrokenReasonResponse"/>
        </wsdl:operation>
        <wsdl:operation name="downloadCorpration">
            <wsdl:input message="ns:downloadCorprationRequest" wsaw:Action="urn:downloadCorpration"/>
            <wsdl:output message="ns:downloadCorprationResponse" wsaw:Action="urn:downloadCorprationResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:downloadCorprationbaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadCascade">
            <wsdl:input message="ns:downloadCascadeRequest" wsaw:Action="urn:downloadCascade"/>
            <wsdl:output message="ns:downloadCascadeResponse" wsaw:Action="urn:downloadCascadeResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:downloadCascadebaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="getZeroStockSets">
            <wsdl:input message="ns:getZeroStockSetsRequest" wsaw:Action="urn:getZeroStockSets"/>
            <wsdl:output message="ns:getZeroStockSetsResponse" wsaw:Action="urn:getZeroStockSetsResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:getZeroStockSetsbaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadAntigen">
            <wsdl:input message="ns:downloadAntigenRequest" wsaw:Action="urn:downloadAntigen"/>
            <wsdl:output message="ns:downloadAntigenResponse" wsaw:Action="urn:downloadAntigenResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:downloadAntigenbaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadDose">
            <wsdl:input message="ns:downloadDoseRequest" wsaw:Action="urn:downloadDose"/>
            <wsdl:output message="ns:downloadDoseResponse" wsaw:Action="urn:downloadDoseResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:downloadDosebaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadUnit">
            <wsdl:input message="ns:downloadUnitRequest" wsaw:Action="urn:downloadUnit"/>
            <wsdl:output message="ns:downloadUnitResponse" wsaw:Action="urn:downloadUnitResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:downloadUnitbaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadVmvaccine">
            <wsdl:input message="ns:downloadVmvaccineRequest" wsaw:Action="urn:downloadVmvaccine"/>
            <wsdl:output message="ns:downloadVmvaccineResponse" wsaw:Action="urn:downloadVmvaccineResponse"/>
        </wsdl:operation>
        <wsdl:operation name="downloadPack">
            <wsdl:input message="ns:downloadPackRequest" wsaw:Action="urn:downloadPack"/>
            <wsdl:output message="ns:downloadPackResponse" wsaw:Action="urn:downloadPackResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:downloadPackbaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downLoadAppScanCodeSet">
            <wsdl:input message="ns:downLoadAppScanCodeSetRequest" wsaw:Action="urn:downLoadAppScanCodeSet"/>
            <wsdl:output message="ns:downLoadAppScanCodeSetResponse" wsaw:Action="urn:downLoadAppScanCodeSetResponse"/>
        </wsdl:operation>
        <wsdl:operation name="getAgents">
            <wsdl:input message="ns:getAgentsRequest" wsaw:Action="urn:getAgents"/>
            <wsdl:output message="ns:getAgentsResponse" wsaw:Action="urn:getAgentsResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:getAgentsbaseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadProduct">
            <wsdl:input message="ns:downloadProductRequest" wsaw:Action="urn:downloadProduct"/>
            <wsdl:output message="ns:downloadProductResponse" wsaw:Action="urn:downloadProductResponse"/>
        </wsdl:operation>
        <wsdl:operation name="downloadProdSpec">
            <wsdl:input message="ns:downloadProdSpecRequest" wsaw:Action="urn:downloadProdSpec"/>
            <wsdl:output message="ns:downloadProdSpecResponse" wsaw:Action="urn:downloadProdSpecResponse"/>
        </wsdl:operation>
        <wsdl:operation name="getColdStorageEquips">
            <wsdl:input message="ns:getColdStorageEquipsRequest" wsaw:Action="urn:getColdStorageEquips"/>
            <wsdl:output message="ns:getColdStorageEquipsResponse" wsaw:Action="urn:getColdStorageEquipsResponse"/>
            <wsdl:fault message="ns:baseInfoWebServiceException" name="baseInfoWebServiceException" wsaw:Action="urn:getColdStorageEquipsbaseInfoWebServiceException"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="baseInfoWebServiceSoap11Binding" type="ns:baseInfoWebServicePortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <wsdl:operation name="getBillValidTimes">
            <soap:operation soapAction="urn:getBillValidTimes" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadKen">
            <soap:operation soapAction="urn:downloadKen" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadNumber">
            <soap:operation soapAction="urn:downloadNumber" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="addVmColdStorageEquip">
            <soap:operation soapAction="urn:addVmColdStorageEquip" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadBrokenReason">
            <soap:operation soapAction="urn:downloadBrokenReason" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadCorpration">
            <soap:operation soapAction="urn:downloadCorpration" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadCascade">
            <soap:operation soapAction="urn:downloadCascade" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getZeroStockSets">
            <soap:operation soapAction="urn:getZeroStockSets" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadAntigen">
            <soap:operation soapAction="urn:downloadAntigen" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadDose">
            <soap:operation soapAction="urn:downloadDose" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadUnit">
            <soap:operation soapAction="urn:downloadUnit" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadVmvaccine">
            <soap:operation soapAction="urn:downloadVmvaccine" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadPack">
            <soap:operation soapAction="urn:downloadPack" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downLoadAppScanCodeSet">
            <soap:operation soapAction="urn:downLoadAppScanCodeSet" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="getAgents">
            <soap:operation soapAction="urn:getAgents" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadProduct">
            <soap:operation soapAction="urn:downloadProduct" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadProdSpec">
            <soap:operation soapAction="urn:downloadProdSpec" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="getColdStorageEquips">
            <soap:operation soapAction="urn:getColdStorageEquips" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="baseInfoWebServiceSoap12Binding" type="ns:baseInfoWebServicePortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <wsdl:operation name="getBillValidTimes">
            <soap12:operation soapAction="urn:getBillValidTimes" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadKen">
            <soap12:operation soapAction="urn:downloadKen" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadNumber">
            <soap12:operation soapAction="urn:downloadNumber" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="addVmColdStorageEquip">
            <soap12:operation soapAction="urn:addVmColdStorageEquip" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadBrokenReason">
            <soap12:operation soapAction="urn:downloadBrokenReason" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadCorpration">
            <soap12:operation soapAction="urn:downloadCorpration" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadCascade">
            <soap12:operation soapAction="urn:downloadCascade" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getZeroStockSets">
            <soap12:operation soapAction="urn:getZeroStockSets" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadAntigen">
            <soap12:operation soapAction="urn:downloadAntigen" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadDose">
            <soap12:operation soapAction="urn:downloadDose" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadUnit">
            <soap12:operation soapAction="urn:downloadUnit" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadVmvaccine">
            <soap12:operation soapAction="urn:downloadVmvaccine" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadPack">
            <soap12:operation soapAction="urn:downloadPack" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downLoadAppScanCodeSet">
            <soap12:operation soapAction="urn:downLoadAppScanCodeSet" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="getAgents">
            <soap12:operation soapAction="urn:getAgents" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="downloadProduct">
            <soap12:operation soapAction="urn:downloadProduct" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadProdSpec">
            <soap12:operation soapAction="urn:downloadProdSpec" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="getColdStorageEquips">
            <soap12:operation soapAction="urn:getColdStorageEquips" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException">
                <soap12:fault use="literal" name="baseInfoWebServiceException"/>
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="baseInfoWebServiceHttpBinding" type="ns:baseInfoWebServicePortType">
        <http:binding verb="POST"/>
        <wsdl:operation name="getBillValidTimes">
            <http:operation location="getBillValidTimes"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadKen">
            <http:operation location="downloadKen"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadNumber">
            <http:operation location="downloadNumber"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="addVmColdStorageEquip">
            <http:operation location="addVmColdStorageEquip"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadBrokenReason">
            <http:operation location="downloadBrokenReason"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadCorpration">
            <http:operation location="downloadCorpration"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadCascade">
            <http:operation location="downloadCascade"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="getZeroStockSets">
            <http:operation location="getZeroStockSets"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadAntigen">
            <http:operation location="downloadAntigen"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadDose">
            <http:operation location="downloadDose"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadUnit">
            <http:operation location="downloadUnit"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadVmvaccine">
            <http:operation location="downloadVmvaccine"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadPack">
            <http:operation location="downloadPack"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downLoadAppScanCodeSet">
            <http:operation location="downLoadAppScanCodeSet"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="getAgents">
            <http:operation location="getAgents"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
        <wsdl:operation name="downloadProduct">
            <http:operation location="downloadProduct"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="downloadProdSpec">
            <http:operation location="downloadProdSpec"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="getColdStorageEquips">
            <http:operation location="getColdStorageEquips"/>
            <wsdl:input>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="application/xml" part="parameters"/>
            </wsdl:output>
            <wsdl:fault name="baseInfoWebServiceException"/>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="baseInfoWebService">
        <wsdl:port name="baseInfoWebServiceHttpSoap11Endpoint" binding="ns:baseInfoWebServiceSoap11Binding">
            <soap:address location="http://web2/ws/services/baseInfoWebService.baseInfoWebServiceHttpSoap11Endpoint/"/>
        </wsdl:port>
        <wsdl:port name="baseInfoWebServiceHttpSoap12Endpoint" binding="ns:baseInfoWebServiceSoap12Binding">
            <soap12:address location="http://web2/ws/services/baseInfoWebService.baseInfoWebServiceHttpSoap12Endpoint/"/>
        </wsdl:port>
        <wsdl:port name="baseInfoWebServiceHttpEndpoint" binding="ns:baseInfoWebServiceHttpBinding">
            <http:address location="http://web2/ws/services/baseInfoWebService.baseInfoWebServiceHttpEndpoint/"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

二 工具使用

2.1 soupui 使用

soupui有免费开源版本,跨平台;

自己开发的webservice
soupui解析

2.2 postman或者同类工具apipost使用

postman调试 webservice
webservice版本
公开webservice

2.3 java自带命令行 wsimport

wsimport 使用方法具体解释

2.4 使用postman或者apipots等同类工具生成代码

2.4.1、getCountryCityByIp-SOAP1.1

getCountryCityByIp-SOAP1.1
getCountryCityByIp-SOAP1.1-content-type

curl --request POST \
  --url http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx \
  --header 'Content-Type: text/xml; charset=utf-8' \
  --header 'content-type: application/xml' \
  --data '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getCountryCityByIp xmlns="http://WebXml.com.cn/">
      <theIpAddress>222.91.66.232</theIpAddress>
    </getCountryCityByIp>
  </soap:Body>
</soap:Envelope>'

2.4.2、getCountryCityByIp-SOAP1.2

SOAP1.2-1
soup1.2-2

curl --request POST \
  --url http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx \
  --header 'Content-Type: application/soap+xml; charset=utf-8' \
  --header 'content-type: application/xml' \
  --data '<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <getCountryCityByIp xmlns="http://WebXml.com.cn/">
      <theIpAddress>222.91.66.232</theIpAddress>
    </getCountryCityByIp>
  </soap12:Body>
</soap12:Envelope>'

三、名词解释

名词作用链接
soap协议xml格式的post方式的http请求
wsdl定义就是soup协议的xml;协议版本有1.1和1.2两个版本l
cxf解析、发布soup xml的一个java的jar包apache cxf
hutool更加方便请求http请求Soap客户端-SoapClient

四、java一键解析xml成bean

4.1 json一键解析成java bean

json 一键解析成实体类

4.2 xml 一键解析成实体类

4.2.1 xml先转成json

使用在线转换工具,直接转换xml为json;  

xml2json

4.2.2 xml使用idea转成xml

idea xml 转实体类
xml直接转xsd格式

4.2.3 实体转xml工具类

1、JAXB "有两个名为 “" 的属性,类的两个属性具有相同名称 "”"解决方案
2、java实体 和 xml相互转换

/**
 1. 4.3 儿童信息上传接口 uploadChildrenInfo
 2. 日期统一 1991-10-08 00:00:00 这种格式
 3. 字符串长度的一半表示纯汉字长度
 */
@Data
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "children")
public class JwxVaccineDetailVo {

    @XmlElement(name = "child")
    private List<Child> children;
    
    @XmlElement(name = "bact_code", required = true)
    protected String bactCode;
    
    @XmlElementWrapper(name="inoculations")//指定父节点, = 等于多包裹了一层;
    @XmlElement(name = "inoculation")
    private List<Inoculation> inoculations;
}

4.3 idea根据xml直接生成实体类

webservice生成实体类是重复工作,使用idea自动生成

  1. 获取xml样例
  2. 使用idea根据xml生成xsd定义文件
  3. 使用idea根据xsd生成实体类(使用jaxb架构从xml生成java实体)
    webservice-01-xml-xsd
    webservice-02-xml-xsd--javabean
    webservice-03-xsd结构

五、研发webService的发布

webService开发完毕需要进行发布,发布需要借助:org.apache.cxf.jaxws.EndpointImpl.publish() 方法。

5. 1 需要引入的包

序号maven坐标常见类核心作用
1jakarta.jws-apijavax.jws.@WebService、@WebParam、@WebMethod标记该service是是webserice
2org.apache.cxforg.apache.cxf.jaxws.EndpointImpl对ws进行发布publish

5.2 使用示例

5.2.1 接口PacsService

/**
 * Pacs服务
 * @author li_chengyu
 */

@WebService(name = "PacsService", // 暴露服务名称
        targetNamespace = "http://service.listener.neusoft.com"// 命名空间,一般是接口的包名倒序
)
public interface PacsService {

    /**
     * (病理检查)报告结果信息接收服务
     *
     * @param xml
     * @return
     * @throws Exception
     */
    @WebMethod
    String receivePacsPathologicalRecord(@WebParam(name = "xml") String xml) throws Exception;
}

5.2.2 实现PacsServiceImpl

@Service
@WebService(name = "PacsService",
        serviceName = "PacsService",
        targetNamespace = "http://service.listener.neusoft.com",
        endpointInterface = "com.neusoft.listener.service.business.terminal.PacsService"
)
@Component
@MapperScan({"com.neusoft.base.dal.dao.*"})
public class PacsServiceImpl implements PacsService {
    @Override
	public String receivePacsPathologicalRecord(String content) throws Exception {
        SoapReturnDto returnDto = new SoapReturnDto();
         return XmlSerializer.bean2Xml(returnDto);
     }
 }

5.2.3 发布public ws

SpringBoot中使用WebService(简单的使用)

import com.neusoft.listener.service.business.terminal.PacsService;
import org.apache.cxf.Bus;
import org.apache.cxf.jaxws.EndpointImpl;
@Configuration
public class CxfConfig {
    @Autowired
    private PacsService pacsService;
    
     /**
     * 检验
     *
     * @author Tony
     * @date
     */
    @Bean
    public Endpoint normalService() {
        EndpointImpl endpoint = new EndpointImpl(bus, normalService);
        endpoint.publish("/NormalService");
        return endpoint;
    }
    
     /**
     * 检查
     *
     * @author Tony
     * @date
     */
    @Bean
    public Endpoint pacsService() {
        EndpointImpl endpoint = new EndpointImpl(bus, pacsService);
        endpoint.publish("/PacsService");
        return endpoint;
    }
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dazer007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值