使用Xfire開(kāi)發(fā)WebService

          MyEclipse中和許多網(wǎng)站的WebService教程以HelloWord為例,內(nèi)容比較簡(jiǎn)單,在實(shí)際的項(xiàng)目應(yīng)用中大多都是對(duì)象和集合,現(xiàn)在我們擴(kuò)展下,使用webservice傳遞對(duì)象,字符串,集合;
          下面是我們?cè)O(shè)計(jì)的webservice的接口:
           1package com.test.service;
           2
           3import java.util.List;
           4
           5public interface IPerson {
           6    //根據(jù)用戶名獲取密碼
           7    public String getPassword(String name);
           8    //根據(jù)用戶名獲取Person對(duì)象
           9    public Person getPersonByName();
          10    //獲取全部成員
          11    public List<Person> getAllPerson();
          12}

          其中有三個(gè)方法包含了傳遞:String,Object,List集合;
          2,這里我們實(shí)現(xiàn)接口中定義的業(yè)務(wù)邏輯
          package com.test.service;

          import java.util.LinkedList;
          import java.util.List;

          public class PersonImpl implements IPerson {
              
              
              
          public String getPassword(String name) {
                  
                  
          return "Password";
              }


              
          public Person getPersonByName() {
                  
                  
          return new Person("ObjectName","ObjectPass");
              }


              
          public java.util.List<Person> getAllPerson(){
                  
                  List list 
          = new LinkedList();
                  list.add(
          new Person("One","PassOne"));
                  list.add(
          new Person("Two","PassTwo"));
                  list.add(
          new Person("Three","PassThree"));
                  
          return list;
              }

          }

          在實(shí)際應(yīng)用中比較復(fù)雜,可能用調(diào)用持久層的Dao,返回需要的結(jié)果,這里我們直接創(chuàng)建一個(gè)模擬數(shù)據(jù),下面是實(shí)現(xiàn)類中用到的對(duì)象
           1package com.test.service;
           2
           3public class Person {
           4    private String name;
           5    private String password;
           6    
           7    public Person() {
           8        super();
           9    }

          10    public Person(String name, String password){
          11        super();
          12        this.name = name;
          13        this.password = password;
          14    }

          15    public String getPassword(){
          16        return password;
          17    }

          18    public void setPassword(String password){
          19        this.password = password;
          20    }

          21}

          22

          3,編寫(xiě)XFire要求的WebSevice定義描述文件,如下:
          <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://xfire.codehaus.org/config/1.0">

              
          <service>
                  
          <name>Person</name>
                  
          <serviceClass>com.test.service.IPerson</serviceClass>
                  
          <implementationClass>
                      com.test.service.PersonImpl
                  
          </implementationClass>
                  
          <style>wrapped</style>
                  
          <use>literal</use>
                  
          <scope>application</scope>
              
          </service></beans>
          本文件的放置位置很關(guān)鍵,此文件放在src/META-INF/xfire/services.xml,如果使用MyEclipse新建的不是webapplication,而是webservice項(xiàng)目,這一步就省去自己編寫(xiě)了,編譯時(shí)會(huì)自動(dòng)編譯到classes的相應(yīng)目錄下面。web.z
          5,編譯xml,定義XfireConfigableServlet
           1<?xml version="1.0" encoding="UTF-8"?>
           2<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
           3  <servlet>
           4    <servlet-name>XFireServlet</servlet-name>
           5    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
           6    <load-on-startup>0</load-on-startup>
           7  </servlet>
           8  <servlet-mapping>
           9    <servlet-name>XFireServlet</servlet-name>
          10    <url-pattern>/services/*</url-pattern>
          11  </servlet-mapping>
          12  <welcome-file-list>
          13    <welcome-file>index.jsp</welcome-file>
          14  </welcome-file-list>
          15</web-app>
          16
          17
          所有的工作都已經(jīng)作完,接下來(lái)在部署在tomcate下,啟動(dòng)服務(wù)器,在地址欄鍵入:http://127.0.0.1:8080/MyWebService/srevice/Person?wsdl
          如果出現(xiàn)xml描述文件就成功了;


          posted on 2008-06-20 12:10 空白 閱讀(860) 評(píng)論(2)  編輯  收藏 所屬分類: Java

          評(píng)論

          # re: 使用Xfire開(kāi)發(fā)WebService 2011-04-26 09:53 李慶文

          這個(gè)對(duì)嗎?我覺(jué)得好像不是很對(duì)。你person類放置在什么位置?我也是這樣建立的。但是,myeclipse提示mywebservice找不到person類。  回復(fù)  更多評(píng)論   

          # re: 使用Xfire開(kāi)發(fā)WebService 2011-05-10 21:17 空白

          @李慶文
          src目錄com.test.service包中
            回復(fù)  更多評(píng)論   

          <2008年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類(15)

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 沙坪坝区| 扬州市| 合肥市| 阿坝县| 驻马店市| 潮州市| 天峻县| 江山市| 唐河县| 通渭县| 大田县| 宁津县| 吴川市| 泾阳县| 黄平县| 兴安县| 沅陵县| 宣城市| 贵溪市| 故城县| 贵德县| 镇康县| 尉氏县| 义乌市| 志丹县| 石门县| 象山县| 凤庆县| 泗洪县| 怀集县| 香河县| 昌乐县| 密云县| 五河县| 淅川县| 梁平县| 炉霍县| 康定县| 马龙县| 保山市| 梓潼县|