一直在接触WebService 推送这块,今天记下来,以便后续查看
1,什么是WebService?
1),简单理解基于web的远程调用,主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。
2),Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
2,WebService优点以及什么情况下使用
1),Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。
注:SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,
import javax.jws.WebService; import javax.jws.WebMethod; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style; @WebService @SOAPBinding(style=Style.RPC) public interface TimeServer { @WebMethod String getTimeAsString(); @WebMethod long getTimeAsElapsed(); }
再编写 Web Service 实现:
import java.text.DateFormat; import java.util.Date; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService(endpointInterface = "myweb.service.TimeServer") public class TimeServerImpl implements TimeServer { /** * 返回从1970年1月1日0点0时0分起的毫秒数 */ public long getTimeAsElapsed() { return new Date().getTime(); } /** * 返回如“2009-12-21”格式的日期 */ public String getTimeAsString() { Date date = new Date(); DateFormat df = DateFormat.getDateInstance(); return df.format(date); } public static void main(String[] args){ // 第一个参数是发布的URL // 第二个参数是SIB(Service Implementation Bean)实现 Endpoint.publish("http://localhost:8083/myweb11", new TimeServerImpl()); //192.168.1.225 System.out.println("---"); } }
最后启动 Web Service:
import javax.xml.ws.Endpoint; public class TimeServerPublisher { public static void main(String[] args){ // 第一个参数是发布的URL // 第二个参数是SIB(Service Implementation Bean)实现 Endpoint.publish("http://127.0.0.1:8080/mywebsss", new TimeServerImpl()); System.out.println("---"); } }
网址打开
2,WebService客户端
使用wsimport -s E:workspaceWebsrc -p ht_service_test -keep http://127.0.0.1:8080/mywebsss?wsdl 生成客户端代码, 接下来直接调用服务端接口即可
-s 生成所在路径
-p 包名
-keep wsdl地址 <也可将wsdl保存到本地>
记录点点滴滴,虽然微不足道。