先看一個PERL編寫的WEB服務,這是啟動一個內建的HTTP服務,在977端口偵聽,然后將請求分發到ebnmstest::soap::dispatch:


















這是ebnmstest::soap::dispatch的內容,它訪問CXF傳過來的一個結構(定義在后面),并返回一個字符串:



























PERL對每個服務方法都是按照對象方式調用,所以第一個參數是self,之后依次是本身的參數列表,最后是整個envelope,我們只有一個參數,訪問它就夠了。
上面用了PERL的DUMPER,這個工具很方便,你可以清楚看到傳過來的東西。
下面來看下CXF客戶端怎么做:
CXF生成客戶端,有3種方法,點這里,其中,還有動態生成代理的方法,點這里。但是,都需要WSDL文件,其實我們不需要這個文件,先自己依照PERL的WEB服務寫一個方法定義接口:












其中的AddHostData是個結構定義如下:













最關鍵是生成代理,我寫在了一個TESTCASE里:

































































開始URI老不知道在哪里設置,總在@WebService的屬性里試來試去,都不行,后來發現setServiceName這個方法,藥到病除。