http WebService <一>

         一直在接触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协议进行通讯。它的设计目标就是简单性和扩展性,

    这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。
    
         wsdl跟java一样,也是一种语言,是通过xml的形式说明该webservice如何调用。
 
  2),只要有调用的接口声明(WSDL),就可在程序中实现调用. 在异构系统间尤其有优势
 
  3),只要数据交换就可考虑. 比如说需要和其他第三方做接口,分享数据,异构系统远程调用等. 不过一次性大数据交换使用web service的效率不太高.
 
3,使用WebService范例<基于 SOAP >
  1,创建WebService服务端
    先编写一个 Web Service 的接口:
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:\workspace\Web\src -p ht_service_test -keep http://127.0.0.1:8080/mywebsss?wsdl  生成客户端代码, 接下来直接调用服务端接口即可

      -s 生成所在路径

      -p 包名

      -keep   wsdl地址  <也可将wsdl保存到本地>

     

 

   ---参考了很多博客,https://www.cnblogs.com/mount/archive/2011/11/21/2256779.html
        blog.csdn.net/qq32933432/article/details/51394749
 

 

 
                          
                                                          记录点点滴滴,虽然微不足道。

 

 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章