<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks

    使用Axis,要發布一個Web服務非常簡單,簡直不能再簡單了,盡管看起來過程和相關代碼有些長。我這個帖子里用到了這些軟件:Axis 1.1、Eclipse 2.1和Eclipse的Tomcat插件2.2(Sysdeo Tomcat plugin)。發布的方法如下:

    我要發布的服務是一個圖書商店,公布的方法有添加圖書addBook、列表圖書listBooks、刪除圖書deleteBook等等,為簡單起見這里就只發布一個添加圖書方法,因為其他方法的發布是類似的。

    1、首先在Eclipse里新建一個名為bookstore的Tomcat工程,注意要安裝了前面說的Tomcat插件才有這個選項的。如果沒有安裝可以建立一個java工程,然后手動建立必要的目錄結構(WEB-INF等),并在Tomcat的server.xml里手動增加與項目對應的<context>項。

    2、接下來建立圖書類(com.bookstore.model.Book),圖書有名稱、ISDN號和頁數三個屬性,這是一個Bean類,代碼如下:

    package com.bookstore.model;

    public class Book {
        private String name;
        private String ISDN;
        private 
    int page;

        public String getISDN() {
            
    return ISDN;
        }

        public String getName() {
            
    return name;
        }

        public 
    int getPage() {
            
    return page;
        }

        public 
    void setISDN(String string) {
            ISDN 
    = string;
        }

        public 
    void setName(String string) {
            name 
    = string;
        }

        public 
    void setPage(int i) {
            page 
    = i;
        }

    }

    3、接下來建立用來提供服務的類(com.bookstore.BookSvc),這個類就是實際的功能類了,它里面只有一個public的addBook()方法,而它的參數只有一個就是要添加的圖書。代碼如下:

    package com.bookstore;

    import com.bookstore.model.Book;

    public class BookSvc {
        
        public 
    void addBook(Book book){
            
    //here you save a book into database
            System.out.println("Book has been added.");
        }
    }

    4、現在,把下載來的Axis解壓縮到一個文件夾,這里假設你解到C:\axis-1_1。把C:\axis-1_1\webapps\axis\WEB-INF\lib目錄下的所有.jar文件復制到你的這個web應用程序的WEB-INF\lib下,再把C:\axis-1_1\webapps\axis\WEB-INF目錄下的web.xml復制到你的web應用程序的WEB-INF下。這個步驟相當于在你的web應用程序中配置了Axis。

    5、為了讓Axis知道你要發布哪些服務,你得在WEB-INF下建立一個名為server-config.wsdd的文件,內容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
     
    <globalConfiguration>
      
    <parameter name="adminPassword" value="admin"/>
      
    <parameter name="attachments.Directory" value="C:\eclipse\workspace\bookstore\WEB-INF\attachments"/>
      
    <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
      
    <parameter name="sendXsiTypes" value="true"/>
      
    <parameter name="sendMultiRefs" value="true"/>
      
    <parameter name="sendXMLDeclaration" value="true"/>
      
    <parameter name="axis.sendMinimizedElements" value="true"/>
      
    <requestFlow>
       
    <handler type="java:org.apache.axis.handlers.JWSHandler">
        
    <parameter name="scope" value="session"/>
       
    </handler>
       
    <handler type="java:org.apache.axis.handlers.JWSHandler">
        
    <parameter name="scope" value="request"/>
        
    <parameter name="extension" value=".jwr"/>
       
    </handler>
      
    </requestFlow>
     
    </globalConfiguration>
     
    <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
     
    <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
     
    <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
     
    <service name="Version" provider="java:RPC">
      
    <parameter name="allowedMethods" value="getVersion"/>
      
    <parameter name="className" value="org.apache.axis.Version"/>
     
    </service>
     
    <service name="BookSvc" provider="java:RPC">
      
    <parameter name="allowedMethods" value="*"/>
      
    <parameter name="className" value="com.bookstore.BookSvc"/>
     
    </service>
     
    <service name="AdminService" provider="java:MSG">
      
    <parameter name="allowedMethods" value="AdminService"/>
      
    <parameter name="enableRemoteAdmin" value="false"/>
      
    <parameter name="className" value="org.apache.axis.utils.Admin"/>
      
    <namespace>http://xml.apache.org/axis/wsdd/</namespace>
     
    </service>
     
    <transport name="local">
      
    <responseFlow>
       
    <handler type="LocalResponder"/>
      
    </responseFlow>
     
    </transport>
     
    <transport name="http">
      
    <requestFlow>
       
    <handler type="URLMapper"/>
       
    <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
      
    </requestFlow>
     
    </transport>
    </deployment>

    這個文件里發布了三個服務:Version、AdminService和我們的BookSvc。還有一個方法可以生成這個文件,好象Axis推薦使用這種生成的方法,就是在同樣目錄下寫一個deploy.wsdd文件(如果不想看可以直接跳到下一步),內容如下:

    <deployment xmlns="http://xml.apache.org/axis/wsdd/"
                xmlns:java
    ="http://xml.apache.org/axis/wsdd/providers/java">
     
    <service name="BookSvc" provider="java:RPC">
      
    <parameter name="className" value="com.bookstore.BookSvc"/>
      
    <parameter name="allowedMethods" value="*"/>
     
    </service>
    </deployment>

    也就是說deploy.wsdd里只包含關于我們的服務的描述,確認Tomcat已經啟動,然后在同一目錄下用下面這個命令生成server-config.wsdd文件:

    java org.apache.axis.client.AdminClient -lhttp://localhost:8080/bookstore/services/AdminService deploy.wsdd

    其中bookstore是我這個web應用程序的虛擬路徑。

    6、重新啟動Tomcat,訪問路徑http://localhost:8080/bookstore/services,就可以看到現在發布了三個Web服務,如下圖。點擊每個服務后的wsdl鏈接可以看到對應的WSDL描述。

    相關鏈接:

    posted on 2007-11-24 23:39 禮物 閱讀(451) 評論(0)  編輯  收藏 所屬分類: webservice
    主站蜘蛛池模板: 亚洲最大免费视频网| 亚洲中文久久精品无码| 麻豆va在线精品免费播放| 国产成人亚洲精品影院| 少妇太爽了在线观看免费视频| 91亚洲视频在线观看| 亚洲 国产 图片| 最近中文字幕mv免费高清在线| 国产精品亚洲一区二区在线观看| 亚洲国产精品乱码一区二区| 黄色成人网站免费无码av| 抽搐一进一出gif免费视频| 亚洲一区二区三区播放在线| 亚洲人成电影网站国产精品| 99久久99这里只有免费费精品 | jzzjzz免费观看大片免费| 久久久无码精品亚洲日韩按摩 | 日日摸日日碰夜夜爽亚洲| 亚洲视频一区调教| 国产又粗又猛又爽又黄的免费视频| 国产特黄一级一片免费| 亚洲日韩精品国产3区| 亚洲va无码手机在线电影| 日韩毛片免费在线观看| 91热久久免费精品99| 成年免费大片黄在线观看com| 亚洲一区二区三区在线| 亚洲AV日韩AV永久无码绿巨人| 免费一看一级毛片人| 好先生在线观看免费播放| 国产午夜精品免费一区二区三区| 国产精品亚洲va在线观看| 亚洲精品电影天堂网| 亚洲色婷婷综合久久| 亚洲AV中文无码乱人伦| 成人免费视频一区| 91成人免费在线视频| 99久久人妻精品免费一区| 久久一区二区三区免费| 日韩精品无码永久免费网站| 亚洲а∨精品天堂在线|