Web Service學習-CXF開發Web Service實例demo(一)

jopen 8年前發布 | 15K 次閱讀 WEB服務/RPC/SOA


Web Service是什么?

 

 Web Service不是框架,更甚至不是一種技術。而是一種跨平臺,跨語言的規范

 

Web Service解決什么問題:

 

    為了解決不同平臺,不同語言所編寫的應用之間如何調用問題。例如,有一個C語言寫的程序,它想去調用java語言寫的某個方法。

 

集中解決:1,遠程調用 2,跨平臺調用 3,跨語言調用

 

實際應用:

 

1,同一個公司的新,舊系統的整合。Linux上的java應用,去調用windows平臺的C應用

2,不同公司的業務整合。業務整合就帶來不同公司的系統整合,不同公司的系統可能存在平臺不同,語言不同的問題

3,內容聚合。一個應用,比如需要提供,天氣預報,股票行情,黃金行情等。

 

CXF與Web Service的關系

 

    CXF是apache旗下的開源框架,由Celtix+ XFire這兩門經典的框架合成,是一套非常流行的web service框架。

 

CXF方式實現Web Service服務demo

 

1,配置環境變量


在CLASSPATH中添加E:\apache-cxf-2.6.2\lib

新建CXF_HOMEE:\apache-cxf-2.6.2

在PATH中添加 %CXF_HOME%\bin




2,使用CXF開發Web Service開發服務器端

 

整個項目的目錄結構(普通java項目):




接口:

package com.tgb.service;

import javax.jws.WebService;


@WebService
public interface HelloWorld{

    public String sayHi(String name);

}

實現類:

package com.tgb.service.impl;

import java.util.Date;

import javax.jws.WebService;

import com.tgb.service.HelloWorld;

@WebService(endpointInterface="com.tgb.service.HelloWorld",serviceName="HelloWorldImpl")
public class HelloWorldImpl implements HelloWorld{

    public String sayHi(String name) {

        return name+"您好!現在時間為:"+new Date();
    }


}


測試客戶端:

package com.tgb.client;

import javax.xml.ws.Endpoint;

import com.tgb.service.HelloWorld;
import com.tgb.service.impl.HelloWorldImpl;

public class ServerMain {

    public static void main(String[] args){

        HelloWorld hw=new HelloWorldImpl();
        //調用endpoint的publish方法,來發布web service
        Endpoint.publish("http://192.168.24.215/hjy",hw);
        System.out.println("Web Service暴露成功");
    }
}

啟動程序:




查看wsdl




3,使用CXF開發WebService客戶端

 

執行如下命令(找到webService的客戶端的工作空間執行)





刷新客戶端項目,可看到如下生成的代碼:




編寫客戶端調用代碼:


package hjy;

import com.tgb.service.HelloWorld;
import com.tgb.service.impl.HelloWorldImpl;

public class ClientMain {

    public static void main(String[] args){
        HelloWorldImpl factory=new HelloWorldImpl();
        //此處返回的只是遠程Web Service的代理
        HelloWorld hw=factory.getHelloWorldImplPort();
        System.out.println(hw.sayHi("hejingyuan"));
    }
}

執行結果:

 

hejingyuan您好!現在時間為:TueJul 28 14:09:07 CST 2015

 

 

總結:

 

使用CXF開發Web Service共有如下幾個步驟:

 

1,服務器端

1)開發一個Web Service業務接口。該接口要用@WebService修飾

2)開發一個Web Service業務實現類。該實現類也需要用@WebService修飾

3)發布Web Service

2,客戶端

1)調用CXF提供的wsdl2java工具,根據WSDL文檔生成相應的java代碼。

WSDL-Web Service Definition Language

任何語言實現了Web Service,都需要提供,并暴露WSDL文檔

2)找到wsdl2java所生成類中,一個繼承了Service的類

該類的實例可當成工廠來使用

3)調用Service子類的實例的getXxxPort方法,返回遠程Web Service的代理



源碼下載

 

 

 



來自: http://blog.csdn.net/hejingyuan6/article/details/47104759

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!