WebService:使用wsimport实现代码生成和实现webservice方法调用

1. 声明

当前内容主要为调用webservice,主要使用wsimport方式实现webservice方法调用,当前的webservice基于SpringBoot中使用WebService(简单的使用)

主要内容:

  1. 使用wsimport生成wsdl的java调用代码
  2. 使用生成的java代码实现webservice中的方法调用

2. 启动webservice

启动当前的webservice后,访问http://localhost:8081/show?wsdl的结果如下
在这里插入图片描述
该wsdl中就是用于描述该webservice中存在服务名称和可以执行操作的方法名称:主要为一个show方法

对于webservice的方法调用其实就是基于soap协议调用(调用方法可以使用工具SOAPUI来进行测试)

3. 使用wsimport工具生成webservice的调用代码

使用wsimport -keep 你的webservice的wsdl地址

wsimport -keep http://localhost:8081/show?wsdl

在这里插入图片描述

此时会生成一个文件夹,文件夹中具有java文件和class文件
在这里插入图片描述
将得到的java代码导入到测试工程中
在这里插入图片描述
其中impl中的MyServiceImplService就是方法调用实现类,MyService就是服务接口(主要通过代理方式实现方法调用)

4. 编写并调用测试

package com.hy.springboot.webservice.demo;

import com.hy.springboot.webservice.demo.service.impl.MyService;
import com.hy.springboot.webservice.demo.service.impl.MyServiceImplService;

/**
 * 
 * @author hy
 * @createTime 2022-01-22 10:09:05
 * @description 实现调用webservice
 *
 */
public class AppTest {
	public static void main(String[] args) {
		MyServiceImplService myServiceImplService = new MyServiceImplService();
		MyService myService = myServiceImplService.getMyServiceImplPort();
		String show = myService.show();
		System.out.println("call show method result==>"+show);
	}
}

调用结果:
在这里插入图片描述
测试成功

5. 总结

1. webservice的方法调用协议就是soap协议(http+xml协议),参考百度百科

2. wsimport是Java的bin中提供的一个对于wsdl进行服务解析和方法调用的代码生成工具

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java调用webservice接口wsdl的具体代码实现可以分为以下几个步骤: 1. 导入webservice库:在Java开发环境中,需要导入webservice相关的库,如JAX-WS、JAXB等。 2. 生成客户端代码使用wsimport命令或者IDE中的webservice工具,生成客户端代码wsimport是JDK自带的命令行工具,可以根据WSDL描述文件生成Java代码。 3. 创建webservice客户端:在Java代码中,创建webservice客户端,即创建一个Service实例,并通过Service实例获取Port实例。 4. 调用webservice接口:通过Port实例调用webservice接口,即调用webservice接口提供的方法。 下面是具体的Java代码实现: ```java import javax.xml.namespace.QName; import javax.xml.ws.Service; import java.net.URL; public class WebserviceClient { public static void main(String[] args) throws Exception { // 创建WSDL的URL,注意不是服务地址 URL url = new URL("http://localhost:8080/HelloWorld?wsdl"); // 创建服务名称 QName qname = new QName("http://webservice.example.com/", "HelloWorldImplService"); // 创建服务视图 Service service = Service.create(url, qname); // 获取服务实现类 HelloWorld helloWorld = service.getPort(HelloWorld.class); // 调用接口方法 String result = helloWorld.sayHello("world"); System.out.println(result); } } ``` 其中,HelloWorld是webservice接口类,代码如下: ```java import javax.jws.WebParam; import javax.jws.WebService; @WebService public interface HelloWorld { String sayHello(@WebParam(name = "name") String name); } ``` 在以上代码中,我们首先创建了WSDL的URL,然后通过QName指定服务名称,接着通过Service.create方法创建服务实例,再通过getPort方法获取服务实现类。最后,我们调用了服务实现类的sayHello方法,并将结果打印出来。 需要注意的是,以上代码中的服务地址是本地地址,需要根据实际情况修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值