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

WebService JAX-WS client

发布时间:2020-12-16 23:40:28 所属栏目:安全 来源:网络整理
导读:在上一篇博客中WebService Raw Client?,我们揭开了WebService的内衣,看清了WebService的躶体。明白如何通过查看WSDL来构建SOAP协议的请求和应答。 任何一种工具,都是为了隐藏复杂繁琐的底层实现,这也以藏了原理。但工具却极大的简化了我们的工作。在理解

在上一篇博客中WebService Raw Client?,我们揭开了WebService的内衣,看清了WebService的躶体。明白如何通过查看WSDL来构建SOAP协议的请求和应答。

任何一种工具,都是为了隐藏复杂繁琐的底层实现,这也以藏了原理。但工具却极大的简化了我们的工作。在理解原理以后,我们需要追求工具的便利性。今天就是承接上一篇博文,使用JAX-WS来简化client的开发。我还是使用天气预报服务?http://www.webservicex.net/globalweather.asmx?WSDL?

J2EE SDK

在使用JAX-RS前,先安装J2EE SDK。要求至少版本5以上,我装的是7。在SDK目录glassfish4glassfishbin下,有一个命令wsimport是我们需要的。这个命令可以将WSDL转为基于JAX-WS的java类。这些类是开发客户端所依赖的。

导入WSDL

使用wsimport命令,将WSDL转为java类。

C:glassfish4glassfishbin>wsimport?-extension?-keep?-verbose?-d?d:/share?http://www.webservicex.net/globalweather.asmx?WSDL

keep : 保留生成的.java文件

verbose : 输出编译信息。

d : 声明文件产生在哪一个目录中

extension : 在不声明extension的情况下,wsimport只支持soap,对绑定在http上的port不进行编译。所以需要声明extension.

在目录d:/share下,可以看到生成的文件。

编写client

在eclipse中,生成一个java project。然后将WSDL生成的java或class导入到项目中。

然后在自己的方法中就可以调用WSDL提供的方法了:

public?class?App?
{
????public?static?void?main(?String[]?args?)
????{
????	GlobalWeather?service?=?new?GlobalWeather();
????	GlobalWeatherSoap?port?=?service.getGlobalWeatherSoap();
????	String?body?=?port.getWeather("shanghai",?"China");
????????System.out.println(body);
????}
}

运行以后,输出:

<?xml?version="1.0"?encoding="utf-16"?>
<CurrentWeather>
??<Location>Shanghai?/?Hongqiao,?China?(ZSSS)?31-10N?121-26E?3M</Location>
??<Time>Apr?17,?2014?-?11:30?AM?EDT?/?2014.04.17?1530?UTC</Time>
??<Wind>?from?the?NW?(320?degrees)?at?4?MPH?(4?KT)?(direction?variable):0</Wind>
??<Visibility>?1?mile(s):0</Visibility>
??<Temperature>?62?F?(17?C)</Temperature>
??<DewPoint>?57?F?(14?C)</DewPoint>
??<RelativeHumidity>?82%</RelativeHumidity>
??<Pressure>?29.94?in.?Hg?(1014?hPa)</Pressure>
??<Status>Success</Status>
</CurrentWeather>

是不是超级简单了啊?

(编辑:李大同)

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

    推荐文章
      热点阅读