1) 直接編寫代碼
2) 開源包,如Axis、cxf自帶命令
3) 藉助其它工具(myeclipse、soapui等),可視化生成客戶端
我們什麼情況下需要根據Wsdl生成服務端呢,比方說我們需要與外接口對接(服務屬於私網),我們開發又在公司,這樣系統無法進行測試,所以我們需模擬一個同樣外部務接口,以方便在公司進行測試,提高開發速度及質量。
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拷備過來即可。
服務準備完成,等待部署運行。
1)myeclipse安裝axis2相關服務(code generator,service archiver)
2)創建web項目,右擊選擇code generator,先擇自定義生成服務端代碼
3)將生成的服務端生成的代碼,集成到項目
4)將Axis2開源包相應組件(lib、文件)拷備到項目
5)服務發佈:右擊項目--service archiver 配置相關信息,生成aar並布至axis2