在 Intellij IDEA 中远程调用已有的 WebServices

在 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()’】即可。

在这里插入图片描述

  运行结果如下所示:

在这里插入图片描述


参考文章:【1】Intellij IDEA开发WebService调用调气预报 - 维尼的博客 - CSDN博客

发布了195 篇原创文章 · 获赞 139 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_39564555/article/details/103223485
今日推荐