前言解读:
Web Serice是一种web服务,将应用程序通过HTTP的方式接收、响应外部系统的请求,实现远程调用。标准的WebService数据格式上使用SOAP(简单对象访问协议),它是基于XML用于交换编码的协议,可以把它看做是对XML的一种“封装”,WebService实现不同系统不同平台和不同软件间相互传递。
WebService的发布
本例所用工具:
● eclipse;
● jdk1.6以上版本;
一、创建第一个WebService服务
1.新建java工程名为webservice
2.在webservice下新建com.tf.service包,在包下新建HelloService类,代码如下:
package com.tf.service;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
//通过解析,标示此类为一个WebService
@WebService
public class HelloService {
public String getInfo(String name){
return "Hello:"+name;
}
public static void main(String[] args){
//使用javax.xml.ws.Endpoint端点发布应用,其值包括两个参数(url,Object)
Endpoint.publish("http://localhost:9010/Service/HelloService", new HelloService());
}
}
注:编译完不会看到什么,因为还没有任何输出。端口可以任意,但不能选择已经被占用的,你可以到命令窗口输入命令:netstat -ano查看
3.网页测试
测试地址:
http://localhost:9091/Service/ServiceHello?wsdl(Service为固定的,ServiceHello为类名,?wsdl为固定的页面)如图:
二、创建客户端
1.新建java工程,名为webclient,然后新建名为com.tf.client包
2.到命令提示窗口生成客户端
命令格式:wsimport -s "src目录" -p “生成类所在包名” -keep “wsdl发布地址”
比如本实例:wsimport -s E:\JAVA\练习2\webclient\src http://localhost:9010/Service/HelloService?wsdl
如果无法编译运行,那么到Java\jdk1.8.0_73\bin启动wsimport.exe,然后到命令提示窗口再次输入,结果如下图:
▼提示一下:无论服务器用哪种语言,在客户端生成相应的java类。刷新webclient类检查一下。
三:编写测试类
在webclient包下新建Client类,如下图:
package com.tf.client;
/**
* 通过调用生成的类调用远程代码
* @author MR.zhang
* @date 2017-4-20
*/
public class Client {
public static void main(String[] args){
//从HelloServiceService的getHelloServicePort()方法返回调用接口
HelloService hello = new HelloServiceService().getHelloServicePort();
//执行调用
String name = hello.getInfo("David");
//返回字符串
System.out.println(name);
}
}
▲自此,一个简单入门的webservice实例便完成了,但这也只不过是入门的,还需随问题的复杂而变化。