這裡只有提供有關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的更多應用
沒有留言 :
張貼留言