Google Prettify

2010-12-20

使用Axis2做為webservice client端

如果有一天你需要使用AXIS2 來做為你接收web service的client,以下提供一些guild line...

這裡只有提供有關client端的操作。有關server端的建立與範例,請參考這裡

Quick start

大綱

1.使用WTP產生webservice API VO
2.執行VO
3.(選擇性步驟) 包成jar檔

說明


1.使用WTP產生webservice API VO
a.new ->web service client,就這麼簡單。
b.選擇產出
我一般都選擇synchronous client
c.Finish

2.執行VO
public class Test {
    private SayHellowStub service;
    public void doService() {
        try {
            Say say = new Say();
            SayHellowRequest request = new SayHellowRequest();
            request.setUserid("Tester");
            say.setRequest(request);
            service.say(say);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public Test() {
        try {
            service = new SayHellowStub();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        Test t = new Test();
    }
}

3.(選擇性步驟) 包成jar檔
jar -cvf hellowws.jar packate_forder_location

Slow start?

有quick start當然有slow start...

大綱

1.下載Eclipse J2EE
Eclipse有好多版本。這裡要的是for Java EE Developers的版本。如果你可以弄到web service API Vo,並不一定需要使用J2EE。產生web service API VO的方式有好幾種,AXIS2也提供了wsdl2java.bat可以直接使用,WTP只是提供了UI可以點~。

2.產生web service API VO
我們可以在這裡自行指定產出的package名稱。這並不會去影響到WSDL的規格。

3.執行VO
注意service不要重複執行。每次執行一個(不論是server還是clent) axis2就會產生一個暫存forder,來存放module,直到JVM關掉。如果在在一個JVM跑for迴圈,會產生too many file open,搞到JVM掛掉…

萬一

有幸與遇到對方並沒有遵照SOAP spec的情形~。至少Axis2使用AXIOM讓我們可以很簡單的去parse XML。AXIOM是跟Dom4j/JDom很像的東西。
OMElement om = sr.getOMElement(SayResponse.MY_QNAME, OMAbstractFactory.getOMFactory());
Iterator it = om.getChildElements();
或是
System.out.println(om.cloneOMElement().toStringWithConsume());
AXIOM的更多應用

沒有留言 :

您或許對這些有興趣

Related Posts with Thumbnails

最後

謝謝您的閱讀,希望您可以有豐富的收獲。