上篇文章我们介绍了用和使用原生态webservice来进行客户端接口调用,本篇小编将继续为大家讲解基于jdk1.7发布一个WebService服务。
1.1服务端发布
第一步:创建一个Java项目
第二步:创建一个类,加入Webservice注解
第三步:提供一个方法sayHello
第四步:在main方法中调用jdk提供的发布服务的方法
第五步:访问服务的wsdl文档(服务的发布地址+?wsdl)http://192.168.122.1:8080/hello?wsdl
代码如下:
package cn.com.webservice;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class HelloService {
public String sayHello(String name,int i){
System.out.println("服务端的sayHello方法被调用了。。。");
return "hello" + name;
}
public static void main(String[] args) {
String address = "http://192.168.122.1:8080/hello";
Object implementor = new HelloService();
//参数一:服务地址
//参数二:提供服务的对象
Endpoint.publish(address, implementor);
}
}
右键run as运行:
在浏览器直接访问:http://192.168.122.1:8080/hello?wsdl
1.2 客户端调用
1.2.1 jdk中wsimport命令使用
1.2.2 客户端调用
1、使用wsimport命令解析wsdl文件生成本地代码
2、通过本地代码创建一个代理对象
3、通过代理对象实现远程调用
代码如下:
package cn.com.webservice;
/**
* 1、使用wsimport命令解析wsdl文件生成本地代码
* 2、通过本地代码创建一个代理对象
* 3、通过代理对象实现远程调用
*
*/
public class App {
public static void main(String[] args) {
HelloServiceService service = new HelloServiceService();
//创建客户端代理对象,用于远程调用
HelloService proxy = service.getHelloServicePort();
String hello = proxy.sayHello("小白", 10);
System.out.println(hello);
}
}
右键run as运行:
切换控制台:
再次run as运行App