Generate axis server code from wsdl

1、爲什麼需要生成服務端?
   很多人都用過Web Service 比較常用的是Axis,Cxf,平時開發服務器端都是從Java-->服務端;經常與其它應用做接口對接,根據業務接口文檔及Wsdl開發相應客戶端,從Wsdl生成相應客戶端代碼方式很多,列舉3種方式:
1) 直接編寫代碼
2) 開源包,如Axis、cxf自帶命令
3) 藉助其它工具(myeclipse、soapui等),可視化生成客戶端
    我們什麼情況下需要根據Wsdl生成服務端呢,比方說我們需要與外接口對接(服務屬於私網),我們開發又在公司,這樣系統無法進行測試,所以我們需模擬一個同樣外部務接口,以方便在公司進行測試,提高開發速度及質量。

 

2、生成Axis1服務
1) 生成工具: Myeclipse
2) 準備好WSDL文件
3) 創建dynmic project
4) 在項目創建文件夾wsdl,將wsdl文件放置此處
5) 右擊wsdl文件--web services--generate javaben skeleton
6) 配置web service兩步即可完成
7) 配置WEB-INF\server-config.wsdd,進行發佈,服務發佈可參考deploy.wsdd

    1、創建項目並將wsdl文件導入

     

 

     

 

 

 

 

 

 

 

     2、 生成服務端代碼配置

 

     

 

 

3、生成結果圖如下

 


 

 

4、服務發佈,若生成代碼時未生成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="sendMultiRefs" value="true" />  
        <parameter name="disablePrettyXML" value="true" />  
        <parameter name="adminPassword" value="admin" />  
        <!--parameter name="attachments.Directory"  
            value="D:\myproject\calileo\xxx\WebContent\WEB-INF\attachments" /-->  
        <parameter name="dotNetSoapEncFix" value="true" />  
        <parameter name="enableNamespacePrefixOptimization" value="true" />  
        <parameter name="sendXMLDeclaration" value="true" />  
        <parameter name="attachments.implementation"  
            value="org.apache.axis.attachments.AttachmentsImpl" />  
        <parameter name="sendXsiTypes" 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="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" />  
    <handler name="Authenticate"  
        type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />  
  
    <!-- 核心重點:服務發佈,name:表示發佈的service名 -->  
    <service name="Trans" provider="java:RPC" style="wrapped" use="literal">
      <parameter name="wsdlTargetNamespace" value="http://webservice.tfc.tmri.com"/>
      <parameter name="wsdlServiceElement" value="TransService"/>
      <parameter name="schemaQualified" value="http://webservice.tfc.tmri.com"/>
      <parameter name="wsdlServicePort" value="Trans"/>
      <parameter name="className" value="com.tmri.tfc.webservice.TransSoapBindingSkeleton"/>
      <parameter name="wsdlPortType" value="Trans"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <parameter name="allowedMethods" value="*"/>
    </service>
  
    <transport name="http">  
        <requestFlow>  
            <handler type="URLMapper" />  
            <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />  
        </requestFlow>  
        <parameter name="qs:list"  
            value="org.apache.axis.transport.http.QSListHandler" />  
        <parameter name="qs:wsdl"  
            value="org.apache.axis.transport.http.QSWSDLHandler" />  
        <parameter name="qs.list"  
            value="org.apache.axis.transport.http.QSListHandler" />  
        <parameter name="qs.method"  
            value="org.apache.axis.transport.http.QSMethodHandler" />  
        <parameter name="qs:method"  
            value="org.apache.axis.transport.http.QSMethodHandler" />  
        <parameter name="qs.wsdl"  
            value="org.apache.axis.transport.http.QSWSDLHandler" />  
    </transport>  
    <transport name="local">  
        <responseFlow>  
            <handler type="LocalResponder" />  
        </responseFlow>  
    </transport>  
</deployment>  

 

   節點service,直接將從deploy.wsdd中service拷備過來即可。

 

 服務準備完成,等待部署運行。

 

3、生成Axis2服務
此用使用Myeclipse生成服務端

1)myeclipse安裝axis2相關服務(code generator,service archiver)

2)創建web項目,右擊選擇code generator,先擇自定義生成服務端代碼

3)將生成的服務端生成的代碼,集成到項目

4)將Axis2開源包相應組件(lib、文件)拷備到項目

5)服務發佈:右擊項目--service archiver 配置相關信息,生成aar並布至axis2

 

 

發佈了36 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章