WebService技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。它可以使用.NET或C#编写发布,也可以使用java,它是平台无关的。WebService也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,比如XML、HTTP。
http://www.webxml.com.cn/zh_cn/web_services.aspx 这个网址收集了一些国内发布的公开的平台信息,比如列车时刻表,手机号码归属地等。
这篇博客就记录一下如何用java发布/调用WebService。
注:WebService有两种传输协议,一种是SOAP,一种是REST,这篇手记记录SOAP协议下的使用。
一、WebService的发布
service的标准接口规范都记录在该service的WSDL文档里。我调用别人的webService需要获得它的WSDL文档,别人调用我的service,也需要获取我的wsdl文档。
那wsdl文档的发布非常简单,在java中有Endpoint类的publish方法,轻松发布自己的webService。
在如上图所示的工程目录中,Service是要发布的web方法,publishMethod.java是为了将其发布出去的代码。
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class Services {
@WebMethod
public String sayHello(String name){
return "你好,"+name+"大佬!";
}
}
需要发布的代码中,@WebService和@WebMethod都是必需的注解,类前加注解代表这个类都是需要被发布的,方法前加注解代表该方法是被发布的。如果方法前不加@WebMethod注解,则该方法仅为内部使用而不提供对外的接口。
import javax.xml.ws.Endpoint;
public class PublishMethod {
public static void main(String[] args) {
// TODO Auto-generated method stub
//http://localhost:8090/MyService?wsdl