0
点赞
收藏
分享

微信扫一扫

Java小白翻身 - webservice教程3

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

步骤 1 jdk1.8的坑

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

javax.xml.accessExternalSchema=all

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

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

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

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

Finish

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

步骤 3 测试调用webservice接口

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

LoginService_Service loginService = new LoginService_Service();

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

LoginService loginServiceImpl = loginService.getLoginServiceImplPort();

调用方法获取返回值

UserLoginResponse.Return user = loginServiceImpl.userLogin();

解析返回值,封装为Map

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);

步骤 4 服务端返回Map

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

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

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

有兴趣的自己研究下吧。

举报

相关推荐

0 条评论