• springboot集成webservice搭建项目遇到问题解决方法与各个参数的意义


      最近工作中遇到使用webservice技术,我们对接方需要我们提供一个webservice接口来接受移动同步的数据,公司项目中现在也没有webservice项目,所以打算搭建一个webservice的服务项目,网络上资料很多,照着资料也可以搭建一个可以运行的webservice项目,但是大多资料都是复制的一篇文章,很多写的都一样一个字也不差,很多参数需要修改,或者需要定制也有没有提到,所以自己写的demo到可以,实际在项目使用中还是有很大差距的,所以这篇文章会详细记录我搭建项目过程联调项目过程遇到的问题以及解决方法,写文章的目的就是希望可以帮到一些遇到诸如此类问题的人,文章可能没有那么全面,也绝对比得上那些复制来的博客。

      首先在pom文件中添加依赖(如果项目不是使用springboot项目则需要自己配置一些文件,springboot项目生成也很简单,没接触的可以看我之前写过的文章)

      

       创建服务

       创建的service类需要添加@WebService注解,targetNamespace:名称空间,一般都是http://+包名,这里需要注意service跟实现类的名称空间要一样,否则会报错,会提示服务端缺参数没有接受参数的对象,客户端掉用的参数名称空间也需要跟service指定的一样,我们对接方不能修改,所以这里名称空间写成了他参数里的名称空间,name:文档中service的名称,可不填有默认值,serviceName:发布的服务名称,endpointInterface:服务的接口地址,回在发布的xml文档中表明接口地址,实际调用接口地址是配置的发布路径,下面会讲,里面还有很多属性,网上资料较多,想多填可以自己查阅资料,这里不在多说。

      创建的service的方法需要添加@WebMethod,operationName:方法名称,这里需要注意客户端掉用最外层是方法名(如下图:),我们对接方不能修改,所以要写成跟调用方一样的名字,action:service发布后xml文档的属性,可不填,这里需要注意,如果写了调用方掉用需要对应写成一样的否则会报错,我们对接方不能修改,所以这里action写成了跟对方掉用一样的action

      

       @WebResult就是添加到返回值上的注解name:返回值名称,targetNamespace:名称空间。@WebParam是添加到入参上的注解,name:参数名称,targetNamespace:名称空间,只要添加了名称空间调用方就要保持一致(关于参数掉用的相关问题与解决方法),这里写两个参数,一个字符串类型,一个对象类型接受,list跟map,Date类型也可以直接接受,如果想做一些处理或者格式化只需要实现接口重接方法就可以了,这不做例子,继续编写实现类(targetNamespace与前面的service要保持一直,否则会报错):

      

      对象属性接受参数用来接受如下图的参数:

      

       对应对象代码:

      

      @XmlAccessorType(XmlAccessType.FIELD)代表所有属性都映射为xml文档属性,@XmlElement跟@XmlAttribute都可以修改属性别名,这里写两个是为了举例子,也都有namespace这个属性,这里必须跟前面service里面写的名称空间保持一致,否则会报上面介绍的参数的错误。

      最后一步就@XmlAccessorType是服务的发布,服务的发布可以在springboot启动文件去发布,也可以写一个配置类来发布,我选择后者,前者这里就不做演示

      

       endpoint.publish("/demo");这句代码代表发布的接口地址,是最后访问的路径,springboot默认路径都是service,这几加上了demo就是127.0.0.1:38080/services/myWebService/service/demo?wsdl,访问127.0.0.1:38080/services/myWebService/service也可以看到方法以及对应的接口地址,如果想修改默认路径可以通多代码的方式修改,也可一通过配置方式修改,我更喜欢配置,所以代码修改就不介绍了,配置文件修改cxf.path就可以了,因为我们使用的是cxf的方式来使用webservice。启动项目访问地址

       点链接可以访问到xml文档,一看访问地址其实就是127.0.0.1:38080/services/myWebService/service/demo?wsdl,文章到此项目已经搭建完成,文章只是一个简单的webservice的搭建与发布,文章最后会贴出一个请求参数,方便后续对照,xml文档对应关系这里也不做讲解,文章里也没有提到接受header的参数与header返回参数的添加与修改,有需要的可以进入传送门,或者看我的下一篇文章,文章会有解决方法。希望文章能帮到一部分遇到问题的人,大家如果有什么其他问题也可以给我留言,我看到也会回复,帮忙解决问题。

      请求报文:

      

    http://包名/
    作者:oKong
    链接:https://www.imooc.com/article/261006
    来源:慕课网
    本文首次发布于慕课网 ,转载请注明出处,谢谢合作

  • 相关阅读:
    Excel生成二维折线图详细教程 TheChosen
    sql语句截取字段中某一符号前几位的方法? TheChosen
    python快速下载包的镜像源? TheChosen
    Android 超大图长图浏览库 SubsamplingScaleImageView 源码解析
    记录线上APP一个排序比较引发的崩溃 Comparison method violates its general contract!
    Android 内存泄漏检测工具 LeakCanary(Kotlin版)的实现原理
    改数组长度
    枚举数组所有组合
    Ubuntu20.04启动后光标一直闪烁
    harbor镜像仓库清理操作
  • 原文地址:https://www.cnblogs.com/HuuuWnnn/p/14174053.html
Copyright © 2020-2023  润新知