欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

XFire完整入門教程

系統(tǒng) 1732 0

網(wǎng)上關(guān)于XFire入門的教程不少,要么是講得很簡單,就像Hello World一樣的程序,要么就是通過IDE集成的工具來開發(fā)的,這對于不同的人群有諸多不便,關(guān)于XFire的一些詳細(xì)的信息就不再多講,可以參考官方網(wǎng)站和相關(guān)的文檔,這里講一個完整的入門實例。

實例中包括三個情況,我想基本上可以概括所有的需求,或者自己稍加擴(kuò)展即可。先來看看我們的Interface。

?1 package ?test;
?2
?3 import ?java.util.List;
?4
?5 public ? interface ?IHelloService? {
?6 ???? public ?String?sayHello(String?ttt);
?7 ????
?8 ???? public ?Course?choose(User?u);
?9 ????
10 ???? public ?List??test(List?t);
11 }

這其中包含了簡單對象的傳遞,對象的傳遞,List的傳遞。

具體的開發(fā)步驟如下:
1、定義Web Service的接口,代碼見上面的接口定義。

2、實現(xiàn)接口和業(yè)務(wù)邏輯,代碼如下:

?1 package ?test;
?2
?3 import ?java.util.ArrayList;
?4 import ?java.util.List;
?5
?6 public ? class ?HelloServiceImpl? implements ?IHelloService? {
?7
?8 ???? public ?String?sayHello(String?ttt)? {
?9 ???????? return ? " Hello,? " + ttt;
10 ????}

11 ????
12 ???? public ?Course?choose(User?u) {
13 ????????System.out.println(u.getName());
14 ????????Course?c = new ?Course();
15 ????????c.setName( " Eee " );
16 ???????? return ?c;?
17 ????????
18 ????}

19 ????
20 ???? public ?List??test(List?t) {
21 ???????? for ?( int ?i? = ? 0 ;?i? < ?t.size();?i ++ )? {
22 ????????????System.out.println((String)?t.get(i));
23 ????????}

24 ????????List??al = new ?ArrayList();
25 ????????Course?c = new ?Course();
26 ????????c.setName( " EeeDDDDDD " );
27 ????????al.add(c);
28 ???????? return ?al;
29 ????????
30 ????}

31 }

用到的User和Course兩個類的代碼如下:

?1 package ?test;
?2
?3 public ? class ?User? {
?4 ???? private ?String?name;
?5
?6 ???? public ?String?getName()? {
?7 ???????? return ?name;
?8 ????}

?9
10 ???? public ? void ?setName(String?name)? {
11 ???????? this .name? = ?name;
12 ????}

13 }

14
?1 package ?test;
?2
?3 public ? class ?Course?? {
?4 ???? private ?String?name;
?5
?6 ???? public ?String?getName()? {
?7 ???????? return ?name;
?8 ????}

?9
10 ???? public ? void ?setName(String?name)? {
11 ???????? this .name? = ?name;
12 ????}

13
14 }


3、編寫XFire要求的WebSevice定義描述文件,如下:

?1 <? xml?version="1.0"?encoding="UTF-8" ?>
?2 < beans? xmlns ="http://xfire.codehaus.org/config/1.0" >
?3
?4 ???? < service >
?5 ???????? < name > HelloService </ name >
?6 ???????? < namespace > http://test/ HelloService </ namespace >
?7 ???????? < serviceClass > test.IHelloService </ serviceClass >
?8 ???????? < implementationClass > test.HelloServiceImpl </ implementationClass >
?9 ???? </ service >
10 ????
11 </ beans >

此文件放在src/META-INF/xfire/services.xml,編譯時會自動編譯到classes的相應(yīng)目錄下面。

4、因為我們用到了List等集合類型,所以需要定義Mapping關(guān)系,文件名為:src/test/IHelloService.aegis.xml,代碼如下:

1 <? xml?version="1.0"?encoding="UTF-8" ?>
2 < mappings >
3 ???? < mapping >
4 ???????? < method? name ="test" >
5 ???????????? < parameter? index ="0" ?componentType ="java.lang.String" ? />
6 ???????????? < return-type? componentType ="test.Course" ? />
7 ???????? </ method >
8 ???? </ mapping >
9 </ mappings >

請注意,此文件一定要放到與IHelloService.java相同的目錄下面,否則會出錯。

5、在Web.xml中配置XFire需要用到的Servlet,代碼如下:

?1 <? xml?version="1.0"?encoding="UTF-8" ?>
?2 < web-app? version ="2.4" ?xmlns ="http://java.sun.com/xml/ns/j2ee"
?3 ????xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
?4 ????xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee?
?5 ????http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
?6
?7 ???? < servlet >
?8 ???????? < servlet-name > XFireServlet </ servlet-name >
?9 ???????? < servlet-class >
10 ????????????org.codehaus.xfire.transport.http.XFireConfigurableServlet
11 ???????? </ servlet-class >
12 ???? </ servlet >
13
14 ???? < servlet-mapping >
15 ???????? < servlet-name > XFireServlet </ servlet-name >
16 ???????? < url-pattern > /servlet/XFireServlet/* </ url-pattern >
17 ???? </ servlet-mapping >
18
19 ???? < servlet-mapping >
20 ???????? < servlet-name > XFireServlet </ servlet-name >
21 ???????? < url-pattern > /services/* </ url-pattern >
22 ???? </ servlet-mapping >
23
24
25 ???? < welcome-file-list >
26 ???????? < welcome-file > index.jsp </ welcome-file >
27 ???? </ welcome-file-list >
28 </ web-app >



此時Web Service的服務(wù)端就開發(fā)完成了。
我們來看看客戶端的代碼吧,也很簡單,如下:

?1 package ?test;
?2
?3 import ?java.net.MalformedURLException;
?4 import ?java.util.ArrayList;
?5 import ?java.util.List;
?6
?7 import ?org.codehaus.xfire.XFireFactory;
?8 import ?org.codehaus.xfire.client.XFireProxyFactory;
?9 import ?org.codehaus.xfire.service.Service;
10 import ?org.codehaus.xfire.service.binding.ObjectServiceFactory;
11
12 public ? class ?Client? {
13
14 ???? public ? static ? void ?main(String[]?args)? {
15
16 ????????Service?srvcModel? = ? new ?ObjectServiceFactory()
17 ????????????????.create(IHelloService. class );
18 ????????XFireProxyFactory?factory? = ? new ?XFireProxyFactory(XFireFactory
19 ????????????????.newInstance().getXFire());
20
21 ????????String?helloWorldURL? = ? " http://localhost:8080/xfiretest/services/ HelloService " ;
22 ???????? try ? {
23 ????????????IHelloService?srvc? = ?(IHelloService)?factory.create(srvcModel,
24 ????????????????????helloWorldURL);
25 ????????????System.out.println(srvc.sayHello( " Robin " ));
26 ????????????
27 ????????????User?u = new ?User();
28 ????????????u.setName( " RRRRR " );
29 ????????????Course?c = srvc.choose(u);
30 ????????????System.out.println(c.getName());
31 ????????????
32 ????????????List??al = new ?ArrayList();
33 ????????????al.add( " 1212 " );
34 ????????????al.add( " 2222 " );
35 ????????????List?t = srvc.test(al);
36 ???????????? for ?( int ?i? = ? 0 ;?i? < ?t.size();?i ++ )? {
37 ????????????????Course?co = (Course)t.get(i);
38 ????????????????System.out.println(co.getName());
39 ????????????}

40 ????????????
41 ????????????
42 ????????}
? catch ?(MalformedURLException?e)? {
43 ????????????e.printStackTrace();
44 ????????}

45
46 ????}

47
48 }

49


以上代碼均無注釋,因為都非常簡單,呵呵。如有不清楚的地方,請留言!

XFire完整入門教程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久国产欧美日韩精品 | 亚洲一区影院 | 久草在线播放视频 | 久久天天躁狠狠躁夜夜躁2014 | 王骏迪的个人资料 | 毛片免费大全短视频 | 亚洲综合电影 | 性色av一区二区三区四区 | 成人网站偷拍澡AAAA | 国产精品久久影院 | 午夜小视频免费观看 | 99re6在线视频精品免费 | 日韩在线小视频 | 草久在线视频 | 双性精h调教灌尿打屁股的文案 | 人人爱天天做夜夜爽88 | 国产福利区一区二在线观看 | 久久精品国产免费中文 | 欧美一级电影在线播放 | 男女性爽大片在线观看 | 国产精品久久久久久久午夜 | 日韩欧美国产精品第一页不卡 | 久久中文在线 | 国产精品三级国语在线看 | 国产1页 | 日本在线小视频 | 国产大陆精品另类xxxx | 成人免费播放视频777777 | 三级在线网站 | 我想看免费毛片 | 亚洲精品视频观看 | 强伦女教师视频 | 少妇的肉体的满足毛片 | 欧美精品一区二区三区在线 | 精品一区二区三区在线观看 | 性少妇videosexfreexx | 久久se精品一区二区国产 | 亚洲精品中文字幕在线观看 | 看中国毛片 | 国产一区二区亚洲 | 精品国产91亚洲一区二区三区www |