前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java小白翻身 - webservice教程3

Java小白翻身 - webservice教程3

作者头像
剽悍一小兔
发布2021-07-20 10:21:32
5610
发布2021-07-20 10:21:32
举报

用idea可以非常方便的生成客户端代码。

步骤 1 jdk1.8的坑

如果你用的是jdk1.8,请在lib目录(我的是在C:\jdk\lib)新建一个jaxp.properties,里面写上一句话

代码语言:javascript
复制
javax.xml.accessExternalSchema=all

暂时别管啥意思了,反正你要是不加的话,就会报错。

步骤 2 自动生成客户端文件

在项目上右键,new - WebService - Generate Java Code from WSDL

在确保webservice服务开启的情况下(即SpringBoot项目启动),填写一个包的名称

image

Finish

image

可以看到生成了一堆文件。

步骤 3 测试调用webservice接口

image

生成的文件中,这个是调用远程接口的类,先new出来。

代码语言:javascript
复制
LoginService_Service loginService = new LoginService_Service();

然后获取可执行的实现类:

代码语言:javascript
复制
LoginService loginServiceImpl = loginService.getLoginServiceImplPort();

调用方法获取返回值

代码语言:javascript
复制
UserLoginResponse.Return user = loginServiceImpl.userLogin();

解析返回值,封装为Map

代码语言:javascript
复制
Map<String,Object> result = new HashMap<>();
List<UserLoginResponse.Return.Entry> entry = user.getEntry();
for (Iterator<UserLoginResponse.Return.Entry> iterator = entry.iterator(); iterator.hasNext(); ) {
    UserLoginResponse.Return.Entry next =  iterator.next();
    result.put(next.getKey(),next.getValue());
}

System.out.println(result);

image

步骤 4 服务端返回Map

userLogin方法返回的是Map类型,这还真的是有点秀。所以,我们写的客户端代码还真的是废了好一番功夫的。

其实,真的不推荐用Map做webservice服务的返回参,真的是和自己过不去啊。

网上找了半天,看到一篇有牛逼的博客,贴出来:https://www.cnblogs.com/qlqwjy/p/9649615.html

有兴趣的自己研究下吧。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 步骤 1 jdk1.8的坑
  • 步骤 2 自动生成客户端文件
  • 步骤 3 测试调用webservice接口
  • 步骤 4 服务端返回Map
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档