一个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网站。
- 创建一个搭建CustomersApp项目。
- 用鼠标右键单击CustomersApp,并选择春天工具>导入WSDL更新于2017年MyEclipse这个菜单选项。之前的版本,点击这里。。
导入Web服务向导可以帮助消耗从内部外部的SOAP Web服务应用程序通过生成所需的Java类与Web服务交互。
导入Web服务向导还能帮助你实现一个服务契约(称为契约优先的开发),从一个WSDL服务的具体实现(SOAP Web服务合同)。 - 下面的WSDL URL输入WSDL位置字段:http://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl和类型org.weather.service在目标计划。单击Next。
指定WSDL URL - 接受默认的项目配置选项,并单击Next。
配置选项 - 接受默认的jax - ws设置,并单击Next。
jax - ws设置选项 - 接受默认的弹簧功能设置,并单击Next。
jax - ws设置选项 - 接受默认库,并单击Next。
项目的库 - 在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
- 打开资源/ wsdl /com/cdyne/ws/wsdl/asmx/weather/weatherws/文件夹中。
- 右键单击weatherws.wsdl> MyEclipse WSDL编辑器,并选择打开。服务的WSDL编辑器显示一个图形视图,包括操作、复杂类型和关系。
WSDL编辑器
3所示。测试Web服务
本节将向您展示如何使用生成的源代码来测试web服务。这是通过添加一个调用web服务的现有方法,特别是“loadCustomers()的方法CustomerServiceImpl类。
- 添加以下导入语句CustomerServiceImpl.java(生成/org/customerapp/service)。
进口org.weather.service.jaxws.IWeatherSoapEndpoint;进口org.weather.service.jaxws.WeatherSoapClient;进口com.cdyne.ws.weatherws.ForecastReturn;
- 更新的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 ();}
- 部署CustomersApp项目和浏览http://localhost: 8080 / CustomersApp / indexCustomer。这个URL调用服务方法修改前面的步骤。Java控制台应该表明服务被称为。