加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice(一)入门

发布时间:2020-12-16 23:58:28 所属栏目:安全 来源:网络整理
导读:webservice Apache CXF官网:点击打开链接 Apache CXF = Celtix + Xfire webservice主要用来跨平台和跨语言 1.webservice中的几个概念 SOAP协议 一个基于XML的可扩展消息信封格式,需同时绑定一个传输协议。这个协议通常是HTTP或HTTPS、SMTP、XMPP。 客户端

webservice

Apache CXF官网:点击打开链接

Apache CXF = Celtix + Xfire
webservice主要用来跨平台和跨语言

1.webservice中的几个概念

SOAP协议

一个基于XML的可扩展消息信封格式,需同时绑定一个传输协议。这个协议通常是HTTP或HTTPS、SMTP、XMPP。

客户端与webservice交互的数据格式是xml.

soap协议的版本:
1.1 ?---- ? jdk支持
1.2 ?---- ? 框架可支持

WSDL

一个XML格式文档,用以描述服务端口访问方式和使用协议的细节。
wsdl文档中描述了web服务的地址,服务类的名字,暴露的方法,方法的参数,类型,以及返回。
所以通过wsdl文档就能知道怎么来调用发布的web服务。就相当于是一个"web服务说明书"

UDDI

一个用来发布和搜索WEB服务的协议,应用程序可借由此协议在设计或运行时找到目标WEB Service。

2.Eclipse自带的工具:

WebServiceExplorer

可使用myeclipse自带的WebServiceExplorer查看交互的xml信息。

tcp/ip monitor
但WebServiceExplorer并不能看到http头,所以可以使用tcp/ip monitor查看请求头信息。

tcp/ip monitor相当于一个代理服务器,截取客户端发送给服务器的请求。

配置tcp/ip monitor


本地接口:指定tcp/ip monitor的端口,随便指定一个四位的。

monitor

? ? host name

? ? port:服务类的端口

? ? type:选择tcp/ip

? ? 超时:默认

启动tcp/ip monitor

点击start启动。


使用tcp/ip monitor

如图,输入地址


注意:这里输入的端口是tcp/ip monior的端口,而不是服务类的端口。因为我们使用tcp/ip monitor充当代理服务器,它会监视拦截到请求。


点击go。

列出所有暴露出的方法。


可以点击需要调用的方法,然后点击go,即实现远程调用。

如果方法需要接收参数,如图中的 sayHi,则可点击右侧Body中的Add,然后在输入框中填写需要传入的参数。


点击go,查看控制台有输出结果hello kitty.(这是调用了服务端的方法后的返回值)


点击state右上角的source连接,查看请求的信息和服务端响应的信息。


同时可以查看到tcp/ip monitor拦截到的请求信息和服务端返回信息



3.远程调用Demo

webXml网站:点击打开链接

以下以其中的手机号码查询为例,来实现调用网上已发布的web服务。


wsimport工具

使用JDK自带的wsimport工具来生成客户端代码。
只需要复制WSDL后面的连接地址,在cmd控制台,输入如下的命令即可

wsimport -s . -p remote http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

说明:wsimport和wsdl2java工具都可以,但wsdl2java工具是基于jdk7的。见说明:wsdl2java工具
其中-s:编译后会生成源代码,包括java代码和class文件

? ? ? ?-p:将生成的文件放在所至指定的包中

以上命令执行后,cmd控制台会提示genarating code 和compile code,若没有错误提示则表示编译成功。

假设当前路径为d:,则进入d盘下,会发现多了一个文件夹remote,打开该文件夹后发现生成了一些java代码和class文件。

这正是我们所需要的。我们接下来就可以在自己的工程中远程调用这些类了。

点击打开链接

<?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>
    <getMobileCodeInfo xmlns="http://WebXml.com.cn/">
      <mobileCode>string</mobileCode>
      <userID>string</userID>
    </getMobileCodeInfo>
  </soap:Body>
</soap:Envelope>


未完


其它的博客参考:点击打开链接

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读