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

WebService入门介绍及案例分析

发布时间:2020-12-16 22:38:32 所属栏目:安全 来源:网络整理
导读:?WebService入门介绍及案例分析 一、WebService 入门概述: 1 、什么是 WebService? WebService ,就是基于 Web 的服务。它使用 Web(HTTP) 方式,接收和响应外部系统的某种请求。从而远程调用。 2、 ?? WebService 能做什么 ? 我们可以调用互联网上查询天气

?WebService入门介绍及案例分析

一、WebService入门概述:

1、什么是WebService?

WebService,就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而远程调用。

2、??WebService能做什么?

我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/SB/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单了调用了一下别人服务器上的一段代码而已

3、??为什么要学习WebService?

学习WebSerice可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.

Web service可以理解为是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API

4、??那么如何才可以发布一个WebService呢?

(1)???????Jdk1.6.0_21以后的版本发布一个WebService服务.。并通过地址栏查看它的wsdl文档.

(2)???????通过wsimport生成客户端代码,调用并查看运行的结果.(学会如何调用是我们的重点).

(3)???????从互联网上获取一个WebService并使用内容3调用并查看结果。

5、??wsinport工具说明:

1wsimportjdk(可以通过java –version检查你当前的版本号.如果版本太低可以安装高版本的jdk.)自带的,可以根据wsdl文档生成客户端调用代码的工具.当然,无论服务器端的WebService是用什么语言写的,都将在客户端生成Java代码.服务器端用什么写的并不重要.

2)常用参数为:

-d<目录>? -将生成.class文件。默认参数。

-s<目录> -将生成.java文件。

-p<生成的新包名> -将生成的类,放于指定的包下。

(wsdlurl) -?http://server:port/service?wsdl,必须的参数。

?

二、WebService服务案例分析:

1)采用wsdl从互联网上获取一个ws的应用案例

方法一:

1)首先我们要在网络上找到一个IP地址来源搜索Web Service(是目前最完整的IP地址数据)

wsdl的地址,我们就来解析这个WSDLhttp://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl

2)??我们要用cmd命令打开命令窗口,在路径C的根目录下创建一个文件夹ws,并且要进入到这个文件夹内,如下命令:

??

下面我们要在这个文件夹下导出我们找到的XSDL中的java文件,如下命令:

使用wsimport这个工具,?-s生成java文件?.后面是wsdl文件地址。

那么这些操作后,我们在C的根目录下的ws文件夹下就可以找到我们导出的java文件了,如下图:

3)??我们要在Eclipse下创建一个新的JAVA项目,在该项目下我们要把所获取到的java文件全部复制到我们所建的项目下,如图效果:

4)??那么我们怎样来进行验证呢。要通过一个测试类来进行测试我们的内容是否成功,下面接着要在我们的项目下新建一个junit的测试类,如下代码:

[java]? view plain copy
  1. import?cn.csdn.hr.ip.ArrayOfString;??
  2. ??
  3. import?cn.csdn.hr.ip.IpAddressSearchWebService;??
  4. package?cn.csdn.hr.junit;??
  5. import?java.util.List;??
  6. import?org.junit.Test;??
  7. import?cn.csdn.hr.ip.IpAddressSearchWebServiceSoap;??
  8. public?class?AppMain?{??
  9. ????????@Test??
  10. ????????void?test()?{??
  11. ??????????????????IpAddressSearchWebService?ipasws?=?new?IpAddressSearchWebService();??
  12. ??????????????????IpAddressSearchWebServiceSoap?ipwss?=?ipasws.getIpAddressSearchWebServiceSoap();??
  13. ??????????????????ArrayOfString?aos?=?ipwss.getCountryCityByIp("222.22.22.222");??
  14. ??????????????????List<String>?strs?=?aos.getString();??
  15. ??????????????????for(String?str:strs){??
  16. ???????????????????????????System.out.println(str);;??
  17. ??????????????????}??
  18. ????????}??
  19. }??


5)??通过测试我们所要的结果就是我们所测试的IP属于的地区,那么我们上面的测试类中要测试的IP"222.22.22.222"的测试显示效果如下图:

?

亲,你们看懂了吗。你也可以对其他的IP进行测试。

通过这个案例WSDL的导出,我们再来介绍另外一种使用Eclipse中的工具来导出WSDL中的java文件。

方法二:

1)??首先我们也要到网络上去找到一个天气预报Web ServiceWSDL文件,我们要通过Eclipse来导出它。WSDL文件的地址为:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

2)??打开Eclipse新建一个Java项目,切换到JavaEE视图中,

切换好后,点击工具栏中的

后,再点击下面出现的窗口内的

后,会出现以下的效果页面:

url的红色方框内输入我们提前在网络上找到的WSDL地址:http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl之后点击按钮GOOK了!

我们就会进入如下界面:

在左侧选中WSDL的地址后得到右侧的界面效果。在下拉列表框中选择我们之前新建好的项目,之后我们再点击下面的按钮GO!。这样就哦了。我们就可以返回JAVA视图中了,在项目,可以看到一个新生成的wsdl文件,右击它选择Web Service下的Generate Client

会弹出以下的窗口:

点击Next .?进入以下界面:

最后点击finish就哦了!

在自己的项目中你就可以看到以下的效果了,自动的将java文件导入到项目中了。

3)??最后我们在来实现一个测试类进行测试就可以了!测试类的代码如下:

copy
    import?static?org.junit.Assert.*;??
  1. import?java.rmi.RemoteException;??
  2. import?javax.xml.rpc.ServiceException;??
  3. import?cn.com.WebXml.WeatherWS;??
  4. import?cn.com.WebXml.WeatherWSLocator;??
  5. import?cn.com.WebXml.WeatherWSSoapStub;??
  6. ?????????? ??????????void?test()?throws?ServiceException,?RemoteException?{??
  7. ???????????????????WeatherWSLocator?weatherWSLocator?=?new?WeatherWSLocator();??
  8. ???????????????????WeatherWSSoapStub?wws?=?(WeatherWSSoapStub)?weatherWSLocator.getPort(WeatherWSSoapStub.class);??
  9. ?????????????????????
  10. ???????????????????String?str[]?=?wws.getWeather("北京","");??
  11. ???????????????????for(String?str1:str){??
  12. ????????????????????????????System.out.println(str1);??
  13. ???????????????????}??
  14. ??????????}??

  15. 测试的效果如下:

    ?

    (编辑:李大同)

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

    推荐文章
      热点阅读