文章目录
在 Intellij IDEA 中远程调用已有的 WebServices
建议可以同时阅读文章 在 Intellij IDEA 中创建并调用 WebService 有助理解。
零、环境准备
本次实验演示环境为:
- Windows 10
- IntelliJ IDEA 2019.2.4 (Ultimate Edition)
- java 1.8.0_211
一、创建 WebServices
1.新建 WebServices 项目
打开 Intellij IDEA 开发工具,依次点击【File】→【New】→【Project…】
接下来,按照图中顺序,依次选择对应的配置,最后点击【Next】
输入项目名称(本次实验名称为 remote_webService_demo),点击【Finish】,Intellij 会自动下载对应的依赖包。
依赖包下载完成后,项目结构目录如下所示。
二、调用远程 wsdl
本次实验远程调用的是 WeatherWebService Web 服务,网址为: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
1.将 wsdl 代码转换为 java代码
删除 example 目录下的 HelloWorld.java ,在该目录下新建文件 weatherTest.wsdl。
同时删除 web/WEB-INF/server-config.wsdd 文件中以下代码。
<service name="HelloWorld" provider="java:RPC" style="document" use="literal">
<parameter name="className" value="example.HelloWorld"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="Application"/>
<namespace>http://example</namespace>
</service>
先点击文件【weatherTest.wsdl】,再依次点击【Tools】→【WebServices】→【Generate Java Code FromWsdl…】
然后会弹出生成 Java 代码的相关配置,修改 wsdl 来源路径为 【 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 】,其他一般而言不需要更改,直接点击【OK】即可。
运行成功后,可以看到如下目录结构
三、编写测试用例
1.创建测试目录
在项目根目录下新建 test 目录,并将其设置为测试源目录
2.编写测试代码
在 test 目录下新建文件 weatheService.java,添加以下代码。
import client.WeatherWebServiceLocator;
import client.WeatherWebServiceSoap_PortType;
import javax.xml.rpc.ServiceException;
import java.rmi.RemoteException;
public class weatheService {
public static void main(String[] args) {
try {
// 1.创建Locator对象,相当于传统服务的类或者是库
WeatherWebServiceLocator weatherWebServiceLocator = new WeatherWebServiceLocator();
// 2.获取port,相当于传统类或库的方法接口
WeatherWebServiceSoap_PortType wwsp = weatherWebServiceLocator.getWeatherWebServiceSoap();
// 3.通过port调用服务
String[] weather = wwsp.getWeatherbyCityName("长沙");
// 4.打印获得的结果
for (String info : weather) {
System.out.println(info);
}
}catch (ServiceException | RemoteException ex){
ex.printStackTrace();
}
}
}
3.运行测试用例
直接点击右键,选择【Run ‘weatheService.main()’】即可。
运行结果如下所示: