JAVA调用WebService接口(以调用第三方天气接口为例)并打成jar包 附源码

天气接口地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

一、生成对应的java实体

  1. 打开项目文件目录路径文件夹,在当前文件夹打开cmd,并输入如下命令:
wsimport -encoding utf-8 -keep -Xnocompile -p com.ratel.weather -wsdllocation /wsdl/weather.wsdl -verbose http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

参数说明:
-encoding : 指定编码格式
-keep: 生成java源文件
-d: 指定.class文件的输出目录
-s: 指定.java文件的输出目录
-p: 定义生成类的包名,不定义的话有默认包名
-verbose: 在控制台显示输出信息
-b: 指定jaxws/jaxb绑定文件或额外的schemas
-extension: 使用扩展来支持SOAP1.2
-Xnocompile: 不编译生成的 Java 文件
-wsdllocation: @WebServiceClient.wsdlLocation 值, 指定这个值后可以将配置文件放到项目中,便于程序打包以后的部署迁移。

如果出现如下图的情况:
在这里插入图片描述
用浏览器打开天气接口地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,按下CTRL+S保存文件为
weather.wsdl
用编辑器打开下载的文件,将

<s:element ref="s:schema" /> 
<s:any />

改为

<s:any minOccurs="2" maxOccurs="2" />

保存以后运行如下命令:

wsimport -encoding utf-8 -keep -Xnocompile -p com.ratel.weather -wsdllocation /wsdl/weather.wsdl -verbose  weather.wsdl

二、建工程

将生成的文件拷贝到一个maven工程中,并将 weather.wsdl 拷贝到resources的wsdl目录下(没有这个目录的进行新建)。
在这里插入图片描述
比较重要的一个类:
在这里插入图片描述

三、测试

  1. 新建一个测试类:
package com.ratel.weather;
import java.net.MalformedURLException;
import java.net.URL;
/**
 * @业务描述:
 * @package_name: com.ratel.weather
 * @project_name: weather
 * @copyright (c) ratelfu 版权所有
 */
public class WeatherTest {
    public static void main(String[] args) throws MalformedURLException {
        //也可以使用new WeatherWebService(url)此方法可重新设置请求的地址
        //URL url=new URL("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl");
        //WeatherWebService factory = new WeatherWebService(url);
        WeatherWebService factory = new WeatherWebService();
        WeatherWebServiceSoap weatherWebServiceSoap = factory.getWeatherWebServiceSoap(); //WeatherWebServiceSoap为调用的实现类
        ArrayOfString strArray = null;
        strArray = weatherWebServiceSoap.getWeatherbyCityName("郑州");
        System.out.println(strArray.getString());
    }
}

出现如下图所示的结果则代表调用成功:
在这里插入图片描述

四、将工程打成jar包,并指定运行时的main类

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>

                    <archive>
                        <manifest>
                            <!--设置加载的主类-->
                            <mainClass>com.ratel.weather.WeatherTest</mainClass>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                        </manifest>
                    </archive>
                    <classesDirectory>
                    </classesDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>

打包:
在这里插入图片描述

五、测试部署迁移

找到jar生成的位置并进行测试:
在这里插入图片描述

六、 源代码

github :https://github.com/Dr-Water/weather

7. 参考链接

  1. WebService01_02——客户端访问wsimport
  2. JAVA调用WebService接口(以调用第三方天气接口为例)
  3. WebService01_03——TCPIP-Monitor 怎么监控SOAP网络请求
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T-OPEN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值