springboot实现WebService接口

  1. 引入依赖

     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web-services</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
        <version>3.2.7</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  2. 定义公共接口,限制行为

    package com.zhqc.cloud.oms.webService;
    
    import javax.jws.WebService;
    
    /**
     * @author zdd
     */
    @WebService(targetNamespace = "http://andot.org/webservice/zhqc/server")
    public interface ApiService {
    
    }
    
  3. 定义webservice

    package com.zhqc.cloud.oms.webService.sku;
    
    import com.zhqc.cloud.oms.webService.ApiService;
    import com.zhqc.cloud.oms.webService.sku.entity.SkuKSFNoticeRequest;
    import com.zhqc.framerwork.common.model.vo.ResponseVO;
    
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebService;
    
    /**
     * @author zdd
     */
    @WebService(targetNamespace = "http://andot.org/webservice/zhqc/server")
    public interface ApiSkuService extends ApiService {
    
    
        /**
         * 创建订单
         *
         * @param skuKSFNoticeRequest 请求参数
         * @return ResponseVO 返回结果
         */
        @WebMethod
        ResponseVO wmsApi(@WebParam(name = "KSF_Notice", targetNamespace = "http://andot.org/webservice/zhqc/server") SkuKSFNoticeRequest skuKSFNoticeRequest);
    
    }
    
    package com.zhqc.cloud.oms.webService.sku;
    
    import com.alibaba.fastjson.JSONObject;
    import com.zhqc.cloud.common.model.base.dto.SkuAddOrUpdateReqDTO;
    import com.zhqc.cloud.common.utils.ConvertUtil;
    import com.zhqc.cloud.oms.api.base.service.ErpSkuService;
    import com.zhqc.cloud.oms.api.order.service.ErpOrderService;
    import com.zhqc.cloud.oms.webService.sku.entity.SkuDetail;
    import com.zhqc.cloud.oms.webService.sku.entity.SkuKSFNoticeRequest;
    import com.zhqc.framerwork.common.model.vo.BusinessResponseVO;
    import com.zhqc.framerwork.common.model.vo.ResponseVO;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.context.annotation.Lazy;
    import org.springframework.stereotype.Component;
    
    import javax.annotation.Resource;
    import javax.jws.WebService;
    import java.util.List;
    
    /**
     * @author zdd
     */
    @Component
    @WebService(name = "ApiService",
            targetNamespace = "http://andot.org/webservice/zhqc/server",
            endpointInterface = "com.zhqc.cloud.oms.webService.sku.ApiSkuService",
            portName = "10000")
    @Slf4j
    public class ApiSkuServiceImpl implements ApiSkuService {
    
        @Resource
        @Lazy
        private ErpSkuService erpSkuService;
    
    
        @Override
        public ResponseVO wmsApi(SkuKSFNoticeRequest skuKSFNoticeRequest) {
            try {
                log.info("接收到SAP数据-saveOrUpdateOfSku:{}", JSONObject.toJSONString(skuKSFNoticeRequest));
                List<SkuDetail> skuDetailList = skuKSFNoticeRequest.getSkuElements().getSkuElement().getSkuDetail();
                for (SkuDetail skuDetail : skuDetailList) {
                    erpSkuService.saveOrUpdate(ConvertUtil.cast(skuDetail, SkuAddOrUpdateReqDTO.class));
                }
    
    
            } catch (Exception e) {
                log.error("createSku error", e);
                return BusinessResponseVO.buildFailVo(e.getMessage());
            }
            return ResponseVO.success();
        }
    
    
    }
    
    1. 定义接收字段及层级
    package com.zhqc.cloud.oms.webService.sku.entity;
    
    import lombok.Data;
    
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    
    /**
     * @author zdd
     */
    @Data
    @XmlRootElement(name = "KSF_Notice", namespace = "http://andot.org/webservice/zhqc/server")
    public class SkuKSFNoticeRequest {
    
    
    
        private SkuAPIMessage skuApiMessage;
    
        private SkuElements skuElements;
    
    
    
        @XmlElement(name = "API_Message", namespace = "http://andot.org/webservice/zhqc/server")
        public SkuAPIMessage getSkuApiMessage() {
            return skuApiMessage;
        }
    
        @XmlElement(name = "Elements", namespace = "http://andot.org/webservice/zhqc/server")
        public SkuElements getSkuElements() {
            return skuElements;
        }
    }
    
    package com.zhqc.cloud.oms.webService.sku.entity;
    
    import lombok.Data;
    
    import javax.xml.bind.annotation.XmlElement;
    
    /**
     * @author zdd
     */
    @Data
    public class SkuAPIMessage {
    
        private String guid;
    
        private String sourceSys;
    
        private String targetSys;
    
        private String singleTargetSys;
    
        private String updateTime;
    
        private String appKey;
    
        private String isTest;
    
        private String isManualSend;
    
    
    
    
        @XmlElement(name = "Guid", namespace = "http://andot.org/webservice/zhqc/server")
        public String getGuid() {
            return guid;
        }
    
        @XmlElement(name = "SourceSys", namespace = "http://andot.org/webservice/zhqc/server")
        public String getSourceSys() {
            return sourceSys;
        }
    
        @XmlElement(name = "TargetSys", namespace = "http://andot.org/webservice/zhqc/server")
        public String getTargetSys() {
            return targetSys;
        }
    
        @XmlElement(name = "SingleTargetSys", namespace = "http://andot.org/webservice/zhqc/server")
        public String getSingleTargetSys() {
            return singleTargetSys;
        }
    
        @XmlElement(name = "UpdateTime", namespace = "http://andot.org/webservice/zhqc/server")
        public String getUpdateTime() {
            return updateTime;
        }
    
        @XmlElement(name = "AppKey", namespace = "http://andot.org/webservice/zhqc/server")
        public String getAppKey() {
            return appKey;
        }
    
        @XmlElement(name = "IsTest", namespace = "http://andot.org/webservice/zhqc/server")
        public String getIsTest() {
            return isTest;
        }
    
        @XmlElement(name = "IsManualSend", namespace = "http://andot.org/webservice/zhqc/server")
        public String getIsManualSend() {
            return isManualSend;
        }
    
    }
    
    
    package com.zhqc.cloud.oms.webService.sku.entity;
    
    import lombok.Data;
    
    import javax.xml.bind.annotation.XmlElement;
    
    /**
     * @author zdd
     */
    @Data
    public class SkuElements {
    
        private SkuElement skuElement;
    
        @XmlElement(name = "Element", namespace = "http://andot.org/webservice/zhqc/server")
        public SkuElement getSkuElement() {
            return skuElement;
        }
    }
    
    package com.zhqc.cloud.oms.webService.sku.entity;
    
    import lombok.Data;
    
    import javax.xml.bind.annotation.XmlElement;
    import java.util.List;
    
    /**
     * @author zdd
     */
    @Data
    public class SkuElement {
    
    
        private List<SkuDetail> skuDetail;
    
    
        @XmlElement(name = "DETAIL", namespace = "http://andot.org/webservice/zhqc/server")
        public List<SkuDetail> getSkuDetail() {
            return skuDetail;
        }
    }
    
    package com.zhqc.cloud.oms.webService.sku.entity;
    
    import com.fasterxml.jackson.annotation.JsonProperty;
    import lombok.Data;
    
    import javax.xml.bind.annotation.XmlElement;
    import java.math.BigDecimal;
    import java.util.Date;
    import java.util.Objects;
    import java.util.stream.Stream;
    
    /**
     * @author zdd
     */
    @Data
    public class SkuDetail {
    
        /**
         * 物料类型
         */
        private String mtart;
    
        /**
         * 物料类型描述
         */
        private String mtbez;
    
        /**
         * 物料号
         */
        private String matnr;
    
        /**
         * 物料描述
         */
        private String maktx;
    
        /**
         * 物料简称
         */
        private String normt;
    
        /**
         * 删除标识
         */
        private String lvorm;
    
        /**
         * 基本计量单位
         */
        private String meins;
    
        /**
         * 基本计量单位描述
         */
        private String mseht;
    
        /**
         * 附加计量单位1
         */
        private String meins1;
    
        /**
         * 附加计量单位描述1
         */
        private String mseht1;
    
        /**
         * 转换关系1
         */
        private String rate1;
    
        /**
         * 附加计量单位2
         */
        private String meins2;
    
        /**
         * 附加计量单位描述2
         */
        private String mseht2;
    
        /**
         * 转换关系2
         */
        private String rate2;
    
        /**
         * 附加计量单位3
         */
        private String meins3;
    
        /**
         * 附加计量单位描述3
         */
        private String mseht3;
    
        /**
         * 转换关系3
         */
        private String rate3;
    
        /**
         * 附加计量单位4
         */
        private String meins4;
    
        /**
         * 附加计量单位描述4
         */
        private String mseht4;
    
        /**
         * 转换关系4
         */
        private String rate4;
    
        /**
         * 附加计量单位5
         */
        private String meins5;
    
        /**
         * 附加计量单位描述5
         */
        private String mseht5;
    
        /**
         * 转换关系5
         */
        private String rate5;
    
        /**
         * 物料组
         */
        private String matkl;
    
        /**
         * 物料组描述
         */
        private String wgbez;
    
        /**
         * 跨工厂物料标识
         */
        private String mstae;
    
        /**
         * 口味码
         */
        private String labor;
    
        /**
         * 口味码描述
         */
        private String labtxt;
    
        /**
         * 产品层次
         */
        private String prdha;
    
        /**
         * 税收分类编码
         */
        private String zeinr;
    
        /**
         * 毛重/运费计算分摊系数
         */
        private BigDecimal brgew;
    
        /**
         * 重量单位
         */
        private String gewei;
    
        /**
         * 净重
         */
        private BigDecimal ntgew;
    
        /**
         * 业务量
         */
        private BigDecimal volum;
    
        /**
         * 大小/量纲
         */
        private String groes;
    
        /**
         * 国际商品编码(欧洲商品编码/通用产品代码)
         */
        private String ean11;
    
        /**
         * 宽度
         */
        private BigDecimal breit;
    
        /**
         * 高度
         */
        private BigDecimal hoehe;
    
        /**
         * 长度
         */
        private BigDecimal laeng;
    
        /**
         * 长度/宽度/高度的尺寸单位
         */
        private String meabm;
    
        /**
         * 最短剩余货架寿命
         */
        private String mhdrz;
    
        /**
         * 总货架寿命
         */
        private String mhdhb;
    
        /**
         * 货架寿命到期日的期间标识
         */
        private String iprkz;
    
        /**
         * 物料的税分类
         */
        private String taxkm;
    
        /**
         * 税分类描述
         */
        private String vtext;
    
        /**
         * 同价汇总码-销售:销售组织数据2
         */
        private String mvgr1;
    
        /**
         * 正常箱折算系数
         */
        private String mvgr2;
    
        /**
         * 物料规格
         */
        private String mvgr4;
    
        /**
         * 标准价格
         */
        private String stprs;
    
        /**
         * 价格单位
         */
        private String peinh;
    
        /**
         * 绿灯天数
         */
        private BigDecimal glts;
    
        /**
         * 黄灯天数
         */
        private BigDecimal ylts;
    
        /**
         * 红灯天数
         */
        private BigDecimal rlts;
    
        /**
         * 业务量
         */
        private BigDecimal zdwhsz;
    
        /**
         * 评估分类
         */
        private String bklas;
    
        /**
         * 基准数量-每栈板标准箱数
         */
        private BigDecimal vbamg;
    
    
        @XmlElement(name = "MTART", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMtart() {
            return mtart;
        }
    
        @XmlElement(name = "MTBEZ", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMtbez() {
            return mtbez;
        }
    
        @XmlElement(name = "MATNR", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMatnr() {
            return matnr;
        }
    
        @XmlElement(name = "MAKTX", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMaktx() {
            return maktx;
        }
    
        @XmlElement(name = "NORMT", namespace = "http://andot.org/webservice/zhqc/server")
        public String getNormt() {
            return normt;
        }
    
        @XmlElement(name = "LVORM", namespace = "http://andot.org/webservice/zhqc/server")
        public String getLvorm() {
            return lvorm;
        }
    
        @XmlElement(name = "MEINS", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMeins() {
            return meins;
        }
    
        @XmlElement(name = "MSEHT", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMseht() {
            return mseht;
        }
    
        @XmlElement(name = "MEINS1", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMeins1() {
            return meins1;
        }
    
        @XmlElement(name = "MSEHT1", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMseht1() {
            return mseht1;
        }
    
        @XmlElement(name = "RATE1", namespace = "http://andot.org/webservice/zhqc/server")
        public String getRate1() {
            return rate1;
        }
    
        @XmlElement(name = "MEINS2", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMeins2() {
            return meins2;
        }
    
        @XmlElement(name = "MSEHT2", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMseht2() {
            return mseht2;
        }
    
        @XmlElement(name = "RATE2", namespace = "http://andot.org/webservice/zhqc/server")
        public String getRate2() {
            return rate2;
        }
    
        @XmlElement(name = "MEINS3", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMeins3() {
            return meins3;
        }
    
        @XmlElement(name = "MSEHT3", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMseht3() {
            return mseht3;
        }
    
        @XmlElement(name = "RATE3", namespace = "http://andot.org/webservice/zhqc/server")
        public String getRate3() {
            return rate3;
        }
    
        @XmlElement(name = "MEINS4", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMeins4() {
            return meins4;
        }
    
        @XmlElement(name = "MSEHT4", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMseht4() {
            return mseht4;
        }
    
        @XmlElement(name = "RATE4", namespace = "http://andot.org/webservice/zhqc/server")
        public String getRate4() {
            return rate4;
        }
    
        @XmlElement(name = "MEINS5", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMeins5() {
            return meins5;
        }
    
        @XmlElement(name = "MSEHT5", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMseht5() {
            return mseht5;
        }
    
        @XmlElement(name = "RATE5", namespace = "http://andot.org/webservice/zhqc/server")
        public String getRate5() {
            return rate5;
        }
    
        @XmlElement(name = "MATKL", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMatkl() {
            return matkl;
        }
    
        @XmlElement(name = "WGBEZ", namespace = "http://andot.org/webservice/zhqc/server")
        public String getWgbez() {
            return wgbez;
        }
    
        @XmlElement(name = "MSTAE", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMstae() {
            return mstae;
        }
    
        @XmlElement(name = "LABOR", namespace = "http://andot.org/webservice/zhqc/server")
        public String getLabor() {
            return labor;
        }
    
        @XmlElement(name = "LABTXT", namespace = "http://andot.org/webservice/zhqc/server")
        public String getLabtxt() {
            return labtxt;
        }
    
    
        @XmlElement(name = "PRDHA", namespace = "http://andot.org/webservice/zhqc/server")
        public String getPrdha() {
            return prdha;
        }
    
        @XmlElement(name = "ZEINR", namespace = "http://andot.org/webservice/zhqc/server")
        public String getZeinr() {
            return zeinr;
        }
    
        @XmlElement(name = "BRGEW", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getBrgew() {
            return brgew;
        }
    
        @XmlElement(name = "GEWEI", namespace = "http://andot.org/webservice/zhqc/server")
        public String getGewei() {
            return gewei;
        }
    
        @XmlElement(name = "NTGEW", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getNtgew() {
            return ntgew;
        }
    
        @XmlElement(name = "VOLUM", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getVolum() {
            return volum;
        }
    
        @XmlElement(name = "GROES", namespace = "http://andot.org/webservice/zhqc/server")
        public String getGroes() {
            return groes;
        }
    
        @XmlElement(name = "EAN11", namespace = "http://andot.org/webservice/zhqc/server")
        public String getEan11() {
            return ean11;
        }
    
        @XmlElement(name = "BREIT", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getBreit() {
            return breit;
        }
    
        @XmlElement(name = "HOEHE", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getHoehe() {
            return hoehe;
        }
    
        @XmlElement(name = "LAENG", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getLaeng() {
            return laeng;
        }
    
        @XmlElement(name = "MEABM", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMeabm() {
            return meabm;
        }
    
        @XmlElement(name = "MHDRZ", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMhdrz() {
            return mhdrz;
        }
    
        @XmlElement(name = "MHDHB", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMhdhb() {
            return mhdhb;
        }
    
        @XmlElement(name = "IPRKZ", namespace = "http://andot.org/webservice/zhqc/server")
        public String getIprkz() {
            return iprkz;
        }
    
        @XmlElement(name = "TAXKM", namespace = "http://andot.org/webservice/zhqc/server")
        public String getTaxkm() {
            return taxkm;
        }
    
        @XmlElement(name = "VTEXT", namespace = "http://andot.org/webservice/zhqc/server")
        public String getVtext() {
            return vtext;
        }
    
        @XmlElement(name = "MVGR1", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMvgr1() {
            return mvgr1;
        }
    
        @XmlElement(name = "MVGR2", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMvgr2() {
            return mvgr2;
        }
    
        @XmlElement(name = "MVGR4", namespace = "http://andot.org/webservice/zhqc/server")
        public String getMvgr4() {
            return mvgr4;
        }
    
        @XmlElement(name = "STPRS", namespace = "http://andot.org/webservice/zhqc/server")
        public String getStprs() {
            return stprs;
        }
    
        @XmlElement(name = "PEINH", namespace = "http://andot.org/webservice/zhqc/server")
        public String getPeinh() {
            return peinh;
        }
    
        @XmlElement(name = "GLTS", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getGlts() {
            return glts;
        }
    
        @XmlElement(name = "YLTS", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getYlts() {
            return ylts;
        }
    
        @XmlElement(name = "RLTS", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getRlts() {
            return rlts;
        }
    
        @XmlElement(name = "ZDWHSZ", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getZdwhsz() {
            return zdwhsz;
        }
    
        @XmlElement(name = "BKLAS", namespace = "http://andot.org/webservice/zhqc/server")
        public String getBklas() {
            return bklas;
        }
    
        @XmlElement(name = "VBAMG", namespace = "http://andot.org/webservice/zhqc/server")
        public BigDecimal getVbamg() {
            return vbamg;
        }
    
    
    }
    
  4. 发布webservice

    package com.zhqc.cloud.oms.webService;
    
    import org.apache.cxf.Bus;
    import org.apache.cxf.bus.spring.SpringBus;
    import org.apache.cxf.jaxws.EndpointImpl;
    import org.apache.cxf.transport.servlet.CXFServlet;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import javax.annotation.Resource;
    import javax.xml.ws.Endpoint;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @Author zdd
     */
    @Configuration
    public class WebServicePublishConfig {
        @Bean
        public ServletRegistrationBean wsServlet() {
            return new ServletRegistrationBean(new CXFServlet(), "/ws/*");
        }
    
        @Resource
        private List<ApiService> apiServices;
    
        @Resource
        @Qualifier(Bus.DEFAULT_BUS_ID)
        private SpringBus bus;
    
        @Bean
        public Endpoint[] endpoint() {
            List<Endpoint> endpointList = new ArrayList<>(apiServices.size());
            for (ApiService apiService : apiServices) {
                EndpointImpl endpoint = new EndpointImpl(bus, apiService);
                String simpleName = apiService.getClass().getSimpleName();
                //如果有Impl结尾的类名,去掉Impl
                if (simpleName.endsWith("Impl")) {
                    simpleName = simpleName.substring(0, simpleName.length() - 4);
                }
                endpoint.publish("/" + simpleName);
                endpointList.add(endpoint);
            }
            return endpointList.toArray(new Endpoint[0]);
        }
    }
    
  5. 测试:

    http://ip:port/ws/ApiSkuService?wsdl

    参数:

    <?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>
                    <wmsApi xmlns="http://andot.org/webservice/zhqc/server">
                            <KSF_Notice>
                                    <API_Message>
                                            <Guid>333</Guid>
                                            <SourceSys>1103</SourceSys>
                                            <TargetSys>1104</TargetSys>
                                            <SingleTargetSys>1105</SingleTargetSys>
                                            <UpdateTime>20230627093301</UpdateTime>
                                            <AppKey>1</AppKey>
                                            <IsTest>2</IsTest>
                                            <IsManualSend>3</IsManualSend>
                                        </API_Message>
                                    <Elements>
                                            <Element>
                                                    <DETAIL>
                                                            <MTART></MTART>
                                                            <MTBEZ></MTBEZ>
                                                            <MATNR></MATNR>
                                                            <MAKTX></MAKTX>
                                                            <NORMT></NORMT>
                                                            <LVORM></LVORM>
                                                            <MEINS></MEINS>
                                                            <MSEHT></MSEHT>
                                                            <MEINS1></MEINS1>
                                                            <MSEHT1></MSEHT1>
                                                            <RATE1></RATE1>
                                                            <MEINS2></MEINS2>
                                                            <MSEHT2></MSEHT2>
                                                            <RATE2></RATE2>
                                                            <MEINS3></MEINS3>
                                                            <MSEHT3></MSEHT3>
                                                            <RATE3></RATE3>
                                                            <MEINS4></MEINS4>
                                                            <MSEHT4></MSEHT4>
                                                            <RATE4></RATE4>
                                                            <MEINS5></MEINS5>
                                                            <MSEHT5></MSEHT5>
                                                            <RATE5></RATE5>
                                                            <MATKL></MATKL>
                                                            <WGBEZ></WGBEZ>
                                                            <MSTAE></MSTAE>
                                                            <LABOR></LABOR>
                                                            <LABTXT></LABTXT>
                                                            <PRDHA></PRDHA>
                                                            <ZEINR></ZEINR>
                                                            <BRGEW></BRGEW>
                                                            <GEWEI></GEWEI>
                                                            <NTGEW></NTGEW>
                                                            <VOLUM></VOLUM>
                                                            <GROES></GROES>
                                                            <EAN11></EAN11>
                                                            <BREIT></BREIT>
                                                            <HOEHE></HOEHE>
                                                            <LAENG></LAENG>
                                                            <MEABM></MEABM>
                                                            <MHDRZ></MHDRZ>
                                                            <MHDHB></MHDHB>
                                                            <IPRKZ></IPRKZ>
                                                            <TAXKM></TAXKM>
                                                            <VTEXT></VTEXT>
                                                            <MVGR1></MVGR1>
                                                            <MVGR2></MVGR2>
                                                            <MVGR4></MVGR4>
                                                            <STPRS></STPRS>
                                                            <PEINH></PEINH>
                                                            <GLTS></GLTS>
                                                            <YLTS></YLTS>
                                                            <RLTS></RLTS>
                                                            <ZDWHSZ></ZDWHSZ>
                                                            <BKLAS></BKLAS>
                                                            <VBAMG></VBAMG>
                                                        </DETAIL>
                                                </Element>
                                        </Elements>
                                </KSF_Notice>
                        </wmsApi>
                </soap:Body>
    </soap:Envelope>
    

    在这里插入图片描述

  • 42
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot实现Web服务接口可以通过以下步骤进行: 1. 添加依赖:在`pom.xml`文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> ``` 2. 创建接口:创建一个接口来定义Web服务的操作。例如,创建一个名为`HelloWorldService`的接口,并在其中定义一个`sayHello`方法: ```java @WebService public interface HelloWorldService { @WebMethod String sayHello(String name); } ``` 3. 实现接口:创建一个实现接口的类,并在其中实现接口中定义的方法。例如,创建一个名为`HelloWorldServiceImpl`的类: ```java @Service @WebService(endpointInterface = "com.example.HelloWorldService") public class HelloWorldServiceImpl implements HelloWorldService { @Override public String sayHello(String name) { return "Hello, " + name + "!"; } } ``` 4. 配置WebService:在`application.properties`文件中添加以下配置: ```properties # 指定WebService的路径 spring.webservices.path=/webService/ws ``` 5. 启动应用程序:创建一个Spring Boot应用程序,并在`main`方法中启动它: ```java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 现在,您已经成功地在Spring Boot实现了一个简单的Web服务接口。您可以使用Java客户端或通过访问`http://localhost:8080/webService/ws/api?wsdl`来测试该接口

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值