安徽新华电脑专修学院_安徽电脑培训_安徽电脑培训学校_合肥电脑培训

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > 在axis中通過wsdd文件發布和卸載webservice

在axis中通過wsdd文件發布和卸載webservice
2010-01-15 07:17:49  作者:  來源:
在上一篇<>中我介紹了一種簡單webservice的發布方式-jws。

     這種發布方式非常的敏捷!但有它的局限性—你必須知道webservice的源代碼。有時候這個的確很讓人郁悶!比如:的webservice被打成了一個jar包,你并沒有源代碼。或者這個webservice根本就不是你的公司開發的。這時你發布這個webservice就會變得很困難。axis針對這種情況提供了wsdd文件的方式來發布和撤銷webservice。

     現在我們來通過一個wsdd文件來對wsdd有個初步的認識。注意:在開始下面的步驟前請安裝axis.具體安裝請看上一篇

 

xml 代碼
 
  1. <deployment xmlns="http://xml.apache.org/axis/wsdd/"  
  2.             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
  3.             <service name="MyService" provider="java:RPC">  
  4.                      <parameter name="className" value="samples.userguide.example3.MyService"/>  
  5.                       <parameter name="allowedMethods" value="*"/>  
  6.             service>  
  7. deployment>  

最外面的元素告訴我們這是一個wsdd發布項,并且定義了java的命名空間,service  元素定義了我們的service.java:RPC定義了axis的provider。parameter name定義了webservice類名及所在包的位置。allowedMethods value等于*,表示MyService的所有方法都可以被調用。

         了解了wsdd文件,我們來認識一個非常有用的工具AdminClient.正式通過它我們才能通過wsdd文件發布我們的應用。它的全路徑是org.apache.axis.client.AdminClient,在axis.jar包中。在使用這個工具前我們必須把相應的jar包加入classpath。如:axis.jar..。如果你做了<>的練習則這一步就不用再做了。

        我們首先進入webservice所在源文件的目錄找到deploy.wsdd文件。然后鍵入如下命令:

           java org.apache.axis.client.AdminClient deploy.wsdd

         (如果提示錯誤,請檢查你是否將必須的jar包加入classpath)

        
         如果成功則會顯示 :

 
  1. <Admin>Done processingAdmin>  

        下面來解釋AdminClient 所做的工作。AdminClient 首先會在axis.jar所在應用下的WEB-INF文件夾下創建一個webservice配置文件server-config.wsdd,并且根據wsdd文件的配置將我們的webservice加入到這個配置文件中。如果server-config.wsdd已經存在則不會創建,會修改這個文件將新的service 配置到server-config.wsdd文件中。

如圖:

 
xml 代碼
 
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
  3.  <globalConfiguration>  
  4.   <parameter name="sendMultiRefs" value="true"/>  
  5.   <parameter name="disablePrettyXML" value="true"/>  
  6.   <parameter name="adminPassword" value="admin"/>  
  7.   <parameter name="attachments.Directory" value="C:\tomcat5\webapps\axis\WEB-INF\attachments"/>  
  8.   <parameter name="dotNetSoapEncFix" value="true"/>  
  9.   <parameter name="enableNamespacePrefixOptimization" value="false"/>  
  10.   <parameter name="sendXMLDeclaration" value="true"/>  
  11.   <parameter name="sendXsiTypes" value="true"/>  
  12.   <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>  
  13.   <requestFlow>  
  14.    <handler type="java:org.apache.axis.handlers.JWSHandler">  
  15.     <parameter name="scope" value="session"/>  
  16.    handler>  
  17.    <handler type="java:org.apache.axis.handlers.JWSHandler">  
  18.     <parameter name="scope" value="request"/>  
  19.     <parameter name="extension" value=".jwr"/>  
  20.    handler>  
  21.   requestFlow>  
  22.  globalConfiguration>  
  23.  <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>  
  24.  <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>  
  25.  <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>  
  26.  <service name="AdminService" provider="java:MSG">  
  27.   <parameter name="allowedMethods" value="AdminService"/>  
  28.   <parameter name="enableRemoteAdmin" value="false"/>  
  29.   <parameter name="className" value="org.apache.axis.utils.Admin"/>  
  30.   <namespace>http://xml.apache.org/axis/wsdd/namespace>  
  31.  service>  
  32.  <service name="Version" provider="java:RPC">  
  33.   <parameter name="allowedMethods" value="getVersion"/>  
  34.   <parameter name="className" value="org.apache.axis.Version"/>  
  35.  service>  
  36. >  
  37.  <service name="MyService" provider="java:RPC">  
  38.   <parameter name="allowedMethods" value="*"/>  
  39.   <parameter name="className" value="samples.userguide.example3.MyService"/>  
  40.  service>  
  41.  <transport name="http">  
  42.   <requestFlow>  
  43.    <handler type="URLMapper"/>  
  44.    <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>  
  45.   requestFlow>  
  46.   <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>  
  47.   <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>  
  48.   <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>  
  49.   <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>  
  50.   <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>  
  51.   <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>  
  52.  transport>  
  53.  <transport name="local">  
  54.   <responseFlow>  
  55.    <handler type="LocalResponder"/>  
  56.   responseFlow>  
  57.  transport>  
  58. deployment>  
xml 代碼

 我們來訪問一下看看:

java samples.userguide.example3.Client -lhttp://localhost:8080/axis/services/MyService "test me!"


You typed : test me!    

返回正確,部署成功!

         如果你要卸載一個webservice也很簡單!我們首先定義一個undeploy.wsdd

 
  1. <undeployment xmlns="http://xml.apache.org/axis/wsdd/">  
  2.  <service name="MyService"/>  
  3. undeployment>  
xml 代碼

進入webservice所在源文件的目錄找到undeploy.wsdd文件。然后鍵入如下命令:

              java org.apache.axis.client.AdminClient  undeploy.wsdd

 (如果提示錯誤,請檢查你是否將必須的jar包加入classpath)

        
         如果成功則會顯示 :
 

 
  1. <Admin>Done processingAdmin>  

 

在看server-config.wsdd已經刪除了原來service的定義

 
xml 代碼
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
  3.  <globalConfiguration>  
  4.   <parameter name="sendMultiRefs" value="true"/>  
  5.   <parameter name="disablePrettyXML" value="true"/>  
  6.   <parameter name="adminPassword" value="admin"/>  
  7.   <parameter name="attachments.Directory" value="C:\tomcat5\webapps\axis\WEB-INF\attachments"/>  
  8.   <parameter name="dotNetSoapEncFix" value="true"/>  
  9.   <parameter name="enableNamespacePrefixOptimization" value="false"/>  
  10.   <parameter name="sendXMLDeclaration" value="true"/>  
  11.   <parameter name="sendXsiTypes" value="true"/>  
  12.   <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>  
  13.   <requestFlow>  
  14.    <handler type="java:org.apache.axis.handlers.JWSHandler">  
  15.     <parameter name="scope" value="session"/>  
  16.    </handler>  
  17.    <handler type="java:org.apache.axis.handlers.JWSHandler">  
  18.     <parameter name="scope" value="request"/>  
  19.     <parameter name="extension" value=".jwr"/>  
  20.    </handler>  
  21.   </requestFlow>  
  22.  </globalConfiguration>  
  23.  <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>  
  24.  <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>  
  25.  <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>  
  26.  <service name="AdminService" provider="java:MSG">  
  27.   <parameter name="allowedMethods" value="AdminService"/>  
  28.   <parameter name="enableRemoteAdmin" value="false"/>  
  29.   <parameter name="className" value="org.apache.axis.utils.Admin"/>  
  30.   <namespace>http://xml.apache.org/axis/wsdd/</namespace>  
  31.  </service>  
  32.  <service name="Version" provider="java:RPC">  
  33.   <parameter name="allowedMethods" value="getVersion"/>  
  34.   <parameter name="className" value="org.apache.axis.Version"/>  
  35.  </service>  
  36. <!--  
  37.  原來的service的定義已經刪除!  
  38. -->  
  39.  <transport name="http">  
  40.   <requestFlow>  
  41.    <handler type="URLMapper"/>  
  42.    <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>  
  43.   </requestFlow>  
  44.   <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>  
  45.   <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>  
  46.   <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>  
  47.   <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>  
  48.   <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>  
  49.   <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>  
  50.  </transport>  
  51.  <transport name="local">  
  52.   <responseFlow>  
  53.    <handler type="LocalResponder"/>  
  54.   </responseFlow>  
  55.  </transport>  
  56. </deployment>  

       看是不是很簡單,不僅省去了ctrl+cctrl+v,還防止了手動配置出錯。一舉兩得豈不快哉!


安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 网络广播_公共广播系统_校园,学校数字ip,itc智能广播系统方案 | 深圳心理咨询-专业心理咨询服务平台「专家免费在线」-深圳从心开始心理O2O | 山东亮化工程_亮化公司_亮化资质-山东星汇照明工程有限公司 | 我的建筑网-中国建筑工程行业门户网站!| 离子交换树脂_阴离子交换树脂_阳离子交换树脂-中国树脂网 | 景德镇水流星陶瓷文化传播有限公司 | 银马全自动免烧砖机设备厂家,提供免烧砖机价格报价及生产视频 | 宁波润金智能科技有限公司| 吉林省创智汇成包装有限公司,长春高档礼盒,长春包装盒厂家,长春精品包装盒 | 快达物流:电商和微商的仓储物流外包和托管服务-北京快达国际物流服务有限公司官方网站 | 胜亿网-专注B2B电子商务,为企业提供一站式网络服务 | 自动超声波清洗机_五金超声波清洗机厂家_超声波模具价格_东莞劲荣自动化 | 专注全球电机测试-电机测试系统-AIP艾普【官网】 | 液晶拼接屏_液晶监视器_液晶广告机_触摸一体机_户外广告机_中亿睿企业官网 | 全自动码垛机械手,码垛机器人,拆包机,缠绕机,开箱封箱装箱机厂家-山东昊宇自动化设备有限公司 | 太原塑料托盘,塑料筐,塑料箱,塑料垃圾桶_太原都程塑料制品有限公司 | 克莱门特中央空调维修| 螺旋输送机_无轴螺旋输送机_绞龙螺旋输送机- 河北品丞环保机械有限公司 | 浩通集团 国际货运 物贸一体化 中非经贸 | 驾驶扫地机-手推洗地机-吸尘器-清洁设备厂家-荣事达官网 | 南京叉车|电瓶叉车|电动叉车|电动堆高车|电动搬运车-南京诺嘉机械 | 托辊|滚筒|聚氨酯托辊|缓冲托辊|尼龙托琨|衡水良龙输送机械有限公司 | 免费的PPT幻灯片演示制作软件,动画视频及课件制作软件 - Focusky万彩演示大师官网 | 三氯异氰尿酸_二水二氯异氰尿酸钠_氰尿酸| 模具|晒纹-咬花-拉丝纹-立体纹-东莞市佳毅激光科技有限公司 | 全国重点实验室--人民网| 上海塑料链条生产厂家-塑料网带批发-柔性齿形链价格-上海瀚幽传动机械有限公司 | 喜来顺财经-专注于财经领域的综合性网站| 途远VR+_成都VR全景制作_成都360全景漫游_成都720全景航拍_成都途远科技有限公司 | 炸鸡汉堡设备厂家-开汉堡炸鸡店需要的设备全套-广州英迪尔电器有限公司 | 菏泽博捷电梯有限公司-菏泽博捷电梯有限公司 | 太阳能路灯-高杆灯-景观灯-玉兰灯-中华灯-LED市电-庭院灯厂家-扬州汉威光电科技有限公司 | 青州市泰航机械设备有限公司 | 全自动清洗过滤器_网式盘式过滤器_石英砂过滤器_叠片过滤器-湖南多灵过滤系统科技有限公司 | 十树品牌策划—品牌战略、品牌策划、品牌定位、品牌设计、包装设计、品牌营销-上海十树品牌管理咨询有限公司官网 | 烘焙服定做_定做烘焙制服_工服定制厂家_烘焙服生产厂家-庆洋制衣 | 履带吊租赁-履带吊出租-出租履带吊车-出租履带吊-吊车出租-履带吊出租公司 | 制砂机锤头_锤式破碎机锤头_粉煤机锤头_巩义市东辰实业 | 深圳固派克包装机械科技有限公司_封口收缩机_封箱机-捆包机-缠膜机 | 西克制冷官网│制冷机组冷风机冷库设备厂家-西克制冷(无锡)有限公司_西克制冷(无锡)有限公司 | 通信系统-通信人在线 |