理解httpUtils和webService的运用
JaxWsProxyFactoryBean调用WebService实例
第一部分:webService
什么是webService???有什么用,业务场景????
一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
很好地了解webService
参考:https://blog.csdn.net/gghh2015/article/details/78005415
目前使用的是
JaxWsProxyFactoryBean调用WebService实例
公司例子:
https://blog.csdn.net/fanbaodan/article/details/86010779
首先理解rmi:
rmi运行机制
**【RMI】**远程方法调用,纯java的RPC框架,在RMI中最核心的为远程对象。A发布了服务,生成stub对象,B拿到stub对象,调用对象的方法进行传输。
详情参考:
https://blog.csdn.net/a11112244444/article/details/92074690
常用注解
@WebService()
该注解用于对接口,类进行注解,表示要发布的web服务
- serviceName:发布的web服务名称;缺省值为java类的名称+Service(字符串) //如java类名称为SayWeb ,wsdl文档中 serviceName默认情况
- name:此属性的值包含XML Web Service的名称,对应wsdl文档中portType 的名称。 缺省值为 Java 类或接口的非限定名称。(字符串) //wsdl文档中 portType默认情况
portName:对应wsdl文档中portName,缺省值为 WebService.name+Port //wsdl文档中 portName 默认情况
<soap:address location=“http://localhost:9001/service/sayweb”/>
如何正确阅读WSDL标签?
参考:
https://my.oschina.net/hnzmdpan/blog/863048
https://my.oschina.net/hnzmdpan/blog/863195
- targetNamespace:指定你想要的名称空间,认是使用接口实现类的包名的反缀 //wsdl文档中targetNamespace默认情况
targetNamespace=“http://say_service/”,在标签中
targetNamespace要指向服务类的接口所在的包名而不是实现类的包名,否则,在客户端将不能识别可用的服务 - wsdlLocation:指定用于定义 Web Service 的 WSDL 文档的 Web 地址。默认情况是发布地址+?wsdl
@XmlSeeAlso({ ObjectFactory.class })
https://www.cnblogs.com/wushifeng/p/6122266.html
@WebMethod
注解里的operationName属性值,为调用者所使用到的方法名。即,客户端里的方法名。至于action属性,好像没有啥用。
@WebParam
用来声明参数,其name属性,则为调用者用到的参数名。partName属性,好像没有啥用。JDK的解释为:“表示此参数的 标签的名称。此名称仅在操作是 rpc 样式,或者操作是文档样式且参数样式为 BARE 时使用。”
@WebResult
用来指明返回值,其name指明返回的标签的名字。而partName属性,也好像没有啥用,同@WebParam注解里的一样。
公司如何调用webService???
1、根据系统配置参数,查询出url
2、根据url读取WSDL文件
https://blog.csdn.net/qq_38252039/article/details/100026841