如何调用webservice服务端

webservice调用方式:
webservice实际是通过网络根据soap的协议传输数据,我们不可能自己去组装消息体。太麻烦。

1、wsimport:
参数: -s 生成源代码 -p 生成代码后的包名
步骤: 找一个文件夹
通过命令行,切换到文件夹目录
执行:wsimport -s . -p com.zzq.stub http://192.168.43.160:8099/hello?wsdl
2、把代码拷贝到客户端工程中

这个命令是jdk提供的webservice生成客户端组装消息体的源代码
在这里插入图片描述

客户端源代码生成后进行调用

package client;

import com.zzq.stub.PersonService;
import com.zzq.stub.PersonServiceService;

/**
 * @ClassName Client
 * @Description
 * @Author 周志强
 * @Date 2021/4/4 23:00
 * @Version 1.0
 */
public class Client {
    public static void main(String[] args) {
        //1、创建服务访问点的集合对象
        PersonServiceService pss = new PersonServiceService();
        //2、获得服务访问点绑定的类,使用get加上port的名字(PersonServicePort)
        PersonService ps = pss.getPersonServicePort();
        String result = ps.sayHello("周志强");
        System.out.println(result);
    }
}

webservice练习

查找电话号码来源

进入网站http://www.webxml.com.cn/zh_cn/web_services.aspx
找一个wsdl ,然后生成客户端源代码

  • 客户端调用
package client;

import com.zzq.stub.MobileCodeWS;
import com.zzq.stub.MobileCodeWSSoap;

/**
 * @ClassName Client
 * @Description
 * @Author 周志强
 * @Date 2021/4/4 23:32
 * @Version 1.0
 */
public class Client {
    public static void main(String[] args) {
        MobileCodeWS mcw = new MobileCodeWS();
        MobileCodeWSSoap mw = mcw.getMobileCodeWSSoap();
        String result = mw.getMobileCodeInfo("电话号码", "");
        System.out.println(result);
    }
}

天气预报

直接调用网络的wsdl会报错,解决方法是把网络wsdl文件下载下来,然后删除报错行

在这里插入图片描述

调用本地wsdl文件
在这里插入图片描述

  • 客户端代码
package client;

import com.weather.stub.ArrayOfString;
import com.weather.stub.WeatherWS;
import com.weather.stub.WeatherWSSoap;

import java.util.List;

/**
 * @ClassName Client
 * @Description
 * @Author 周志强
 * @Date 2021/4/5 00:33
 * @Version 1.0
 */
public class Client {
    public static void main(String[] args) {
        WeatherWS ws = new WeatherWS();
        WeatherWSSoap wsSoap = ws.getWeatherWSSoap();
        ArrayOfString weather = wsSoap.getWeather("1321", "");
        List<String> string = weather.getString();
        for (String s : string) {
            System.out.println(s);
        }
    }
}
  • 结果
甘肃 天水
天水
1321
2021/04/05 00:30:41
今日天气实况:气温:7℃;风向/风力:东风 2级;湿度:74%
紫外线强度:最弱。
中国人民保险风寒指数:冷,感觉有点冷,室外活动要穿厚实一点,年老体弱者要适当注意保暖。
健臻·血糖指数:易波动,气温多变,血糖易波动,请注意监测。
穿衣指数:冷,建议着棉衣加羊毛衫等冬季服装。
洗车指数:不宜,有雨,雨水和泥水会弄脏爱车。
紫外线指数:最弱,辐射弱,涂擦SPF8-12防晒护肤品。

44 小雨
4/7
东南风转南风小于3
7.gif
7.gif
45 多云转晴
5/17
南风3-4级转东南风小于3
1.gif
0.gif
46 晴转阴
8/16
北风转东北风小于3
0.gif
2.gif
47 多云转阴
7/14
东风转东南风小于3
1.gif
2.gif
48 
7/16
南风小于3
2.gif
2.gif

好的,让我来回答你的问题。首先,在Spring Boot项目中添加WebService依赖,可以使用JAX-WS标签库提供的@WebService注解来指定要公开的接口。然后,在服务端实现类中,使用@WebService注解标注要公开的方法,同时通过Endpoint.publish方法发布WebService服务。接着,在客户端创建WebService客户端代理对象,使用代理对象调用服务端暴露的方法即可。 具体步骤如下: 1. 在pom.xml中添加WebService依赖,如下所示: ```xml <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <version>2.3.3</version> </dependency> ``` 2. 在服务端实现类中,使用@WebService注解标注要公开的方法,如下所示: ```java @WebService public class UserService { public String getUserById(String userId) { // 实现具体的逻辑 return user.getUsername(); } } ``` 3. 发布WebService服务,如下所示: ```java Endpoint.publish("http://localhost:8080/userService", new UserService()); ``` 4. 在客户端创建WebService客户端代理对象,如下所示: ```java JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(UserService.class); factory.setAddress("http://localhost:8080/userService"); UserService userService = factory.create(UserService.class); ``` 5. 使用代理对象调用服务端暴露的方法,如下所示: ```java String userId = "123"; String username = userService.getUserById(userId); ``` 以上就是通过Spring Boot调用WebService服务的具体实现流程。希望能对你有所帮助。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值