一个SOAP Web服务导入一个Spring应用程序

有多种功能,以促进SOAP web服务开发。本教程是特别关注消费第三方web服务从Spring应用程序中。这是通过使用导入Web服务向导来实现的。在本教程中,您将学习如何:

  • 将WSDL导入现有的项目
  • 在编辑器中查看WSDL
  • 测试web服务

这个功能是可用的MyEclipse

1。导入WSDL

本教程使用的是免费的CDYNE天气web服务,它提供天气信息在美国的邮政编码。请阅读笔记部分CDYNE维基网站关于这个web服务的信息。CDYNE天气的web服务的WSDLhttp://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl。如果这项工作没有做好,请查阅CDYNE Wiki网站。

  1. 创建一个搭建CustomersApp项目
  2. 用鼠标右键单击CustomersApp,并选择春天工具>导入WSDL更新于2017年MyEclipse这个菜单选项。之前的版本,点击这里

    导入Web服务向导可以帮助消耗从内部外部的SOAP Web服务应用程序通过生成所需的Java类与Web服务交互。

    导入Web服务向导还能帮助你实现一个服务契约(称为契约优先的开发),从一个WSDL服务的具体实现(SOAP Web服务合同)。

  3. 下面的WSDL URL输入WSDL位置字段:http://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl和类型org.weather.service在目标计划。单击Next。


    指定WSDL URL

  4. 接受默认的项目配置选项,并单击Next。


    配置选项

  5. 接受默认的jax - ws设置,并单击Next。


    jax - ws设置选项

  6. 接受默认的弹簧功能设置,并单击Next。


    jax - ws设置选项

  7. 接受默认库,并单击Next。


    项目的库

  8. 在Summary页面上单击Finish。所有必要的使用web服务的源代码生成的。


    总结页面


2。检查生成的代码

默认情况下,导入Web服务向导生成源代码生成的文件夹中。自文件夹不存在,该向导创建文件夹和设置它作为一个Eclipse源文件夹。所有的工件创建反映了web服务的WSDL中定义。


从WSDL生成的Java文件

com.dyne.ws.weatherws包包含源代码生成的WSDL实体。包的名称是基于WSDL中指定的目标名称空间。

org.weather.service包包含Spring服务接口,服务实现(Spring @ service)春天,Junit测试。只有当你使用这个源代码实现服务基于契约(契约优先的开发))。

org.weather.service。jaxws包包含服务端点接口和服务客户。服务端点接口应该有一个Java web服务操作的方法。

2.1查看WSDL

  1. 打开资源/ wsdl /com/cdyne/ws/wsdl/asmx/weather/weatherws/文件夹中。
  2. 右键单击weatherws.wsdl> MyEclipse WSDL编辑器,并选择打开。服务的WSDL编辑器显示一个图形视图,包括操作、复杂类型和关系。

    WSDL编辑器

3所示。测试Web服务

本节将向您展示如何使用生成的源代码来测试web服务。这是通过添加一个调用web服务的现有方法,特别是“loadCustomers()的方法CustomerServiceImpl类。

  1. 添加以下导入语句CustomerServiceImpl.java(生成/org/customerapp/service)
    进口org.weather.service.jaxws.IWeatherSoapEndpoint;进口org.weather.service.jaxws.WeatherSoapClient;进口com.cdyne.ws.weatherws.ForecastReturn;
  2. 更新的loadCustomers ()”方法CustomerServiceImpl.java(生成/org/customerapp/service)使用以下的代码行,不存在。这只是一个基本的例子。web服务有其他可用的方法。
    公共设置<客户> loadCustomers () {WeatherSoapClient wsClient = new WeatherSoapClient ();IWeatherSoapEndpoint服务= wsClient.getService ();ForecastReturn fr = service.GetCityForecastByZIP (“33710”);system . out。println(“后天天气”+ fr.getCity () + " " + fr.getState ());返回customerDAO.findAllCustomers ();}
  3. 部署CustomersApp项目和浏览http://localhost: 8080 / CustomersApp / indexCustomer。这个URL调用服务方法修改前面的步骤。Java控制台应该表明服务被称为。

Baidu
map