受白衣同志的當(dāng),上了xfire的賊船,拋棄了axis,嗚!
xfire 1.0終于final了,試用了一下,,感覺同1.0M6相比,使用變化不大。
看看user guide,照著examples下的例子,基本上hello xfire不成問題。
1、jar包
同以往一樣,xfire user guide中的Dependency Guide.html還是說得不明不白,除了讓人發(fā)暈,沒有太大的實(shí)際意義。
注:
1)XmlSchema-1.0.jar、jakatra commons httpclient/codec只有在Dynamic Client中才需要用。
2)采用quick start、examples/book中用的service.xml配置方法時,xbean-spring與spring有兼容問題,我用1.2.7、2.0M2的spring時,總是報addPropertyValue(String,Object)之類的異常,換成1.2.6以后一切正常。用examples/spring例子中的配置方法時,沒有出現(xiàn)這種情況。
2、quick start、examples/book
這種做法很簡單,好象也不太合我的胃口,就沒仔細(xì)折騰。
(1)在web.xml中配置一下

2

3

4

5

6

7

8

9

10

11

12

13

14

15

(2)編碼。這個不用說,呵呵
(3)在classpath中,建META-INF/xfire/services.xml配置文件,把剛才做好的webservices配置一下。

2

3

4

5

6

7

(4)然后就是deploy,訪問http://ip:port/webapp name/BookService?WSDL之類的動作了。
3、examples/spring
xfire和spring勾搭得比較緊密啊,只需要簡單配置一下,就可以把spring.xml中配置好的bean拿出來做web services了。
(1)折騰spring的東西(略)。
(2)在web.xml中配置一下(注意xfire那一段)

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

(3)在WEB-INF/xfire-servlet.xml中把spring bean同xfire webservices“關(guān)聯(lián)”起來。這個xfire-servlet.xml實(shí)際上就是一個標(biāo)準(zhǔn)的spring.xml配置文件。

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

注:第16行,xfire 1.0M6中用serviceInterface,現(xiàn)在改成serviceClass了。
(4)然后就完工,用http://ip:port/webapp name/xfire/EchoService?WSDL可以看到WSDL內(nèi)容。
4、客戶端
按我的惡習(xí),這類事情,肯定是直接開vs.net或者C# developer來顯擺一下了。不得不承認(rèn),.net里面調(diào)web services就是方便啊!
至于java做client么,以前一般是用axis來生成client class,xfire也提供類似的工具,不過對于xfire來說,最簡單的辦法就是用Dynamic Client,幾行代碼搞定。

2

3

4
