[Axis2與Eclipse整合開發Web Service系列之二] Top-Down方式,通過WSDL逆向產生服務端(續)

來源:互聯網
上載者:User

標籤:des   cWeb   cPage   style   blog   http   color   io   os   

前言

本篇是承接上一篇: 

[Axis2與Eclipse整合開發Web Service系列之二] Top-Down方式,通過WSDL逆向產生服務端


在上一篇粗略地介紹了如何使用Top-Down的方式建立一個web service .  但是對於如何部署及調用,以及一些細節的部分基本上沒有介紹。

應某些博友的要求, 也適逢自己有空, 接下來就詳細介紹一下整個部分如何進行。


環境準備

JDK 肯定要安裝了, 這個就不多講了。

1. eclipse  3.5.2

對eclipse 版本的要求其實不是很嚴, 但是要按照了wtp 外掛程式。



2.  Tomcat6

下載後正常安裝就可以了。



建立Web Service 的步驟

這裡建立一個運算兩個數加法的web service. 給定兩個數, 算出它們的和。

(當然, 這裡只是個例子, 在實際的狀況中,可能是像傳入城市名,得到城市天氣預報的例子 )


1.  建立一個Dynamic Web Project  - 命名為webServicePrj





項目結構很簡單, web.xml 的內容也很簡單, 只有配置了首頁面的配置。


2. 在 webServicePrj  上按右鍵, 選擇建立 WSDL





3. 命名為 CalculateSOAP.wsdl



下一步



4 點擊 完成 之後就會在項目的跟路徑下建立一個  CalculateSOAP.wsdl 的檔案,預設以 Design  視圖的方式開啟。



5. 修改方法名 NewOperation  為 AddOperation


6. 修改輸入,輸入參數

點擊紅色部分, 進入編輯的子視圖


7. 修改參數名及添加需要的參數



結果如下:



Output 部分類似處理, 結果如下:



修改完成之後, 儲存。 WSDL 的部分基本上就完成了。

WSDL 只是一個服務的描述, 至於這個服務實際要做的事情,就要產生web service 的代碼了。 就是使用top down 的方式產生Web service.

8.  右鍵 單擊項目, 建立  Web service


9.  Next 




10. 一直 next , 直到完成, 看看 eclipse 幫我們產生了那些檔案



1) 產生的服務端 Java代碼。  

impl 結尾的java   檔案就是寫實際邏輯的地方。


2)自動匯入的axis 的一些jar 包

3)產生的部署的描述 (後面有用)

4)這個web.xml  被修改了。 自動增加了一些axis 的servlet 的配置


5) 在WebContent 下會產生一個 wsdl 目錄和 CalculateSOAPSOAP.wsdl 的檔案。

這個內容和 之前建立的CalculateSOAP.wsdl 類似(所以好的命名方式是之前的wsdl不要加SOAP)


到此, 並沒有結束。還需要把這個 web service 部署起來。

11.  deploy 這個webservice 方式有很多種, 簡單的一種方式, 就是在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="D:\Tomcat\temp\axis\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="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" /><handler name="Authenticate"type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" /><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><service name="Version" provider="java:RPC"><parameter name="allowedMethods" value="getVersion" /><parameter name="className" value="org.apache.axis.Version" /></service><!--myself webservice-->  <service name="CalculateSOAPSOAP" provider="java:RPC" style="wrapped" use="literal">      <parameter name="wsdlTargetNamespace" value="http://localhost:8080/CalculateSOAP/"/>      <parameter name="wsdlServiceElement" value="CalculateSOAP"/>      <parameter name="schemaUnqualified" value="http://localhost:8080/CalculateSOAP/"/>      <parameter name="wsdlServicePort" value="CalculateSOAPSOAP"/>      <parameter name="className" value="localhost.CalculateSOAP.CalculateSOAPSOAPSkeleton"/>      <parameter name="wsdlPortType" value="CalculateSOAP"/>      <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.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" /><parameter name="qs.wsdl"value="org.apache.axis.transport.http.QSWSDLHandler" /></transport><transport name="local"><responseFlow><handler type="LocalResponder" /></responseFlow></transport></deployment>

這個檔案, 大部分內容是一樣的。

只是中間的這塊


是從 之前產生的deploy.wsdd 中複製過來的。

到此,開發工作基本完成。


打包、部署war 檔

1. 打包

按右鍵項目, 匯出 war  檔, war 名為webServicePrj.war



2. 將  webServicePrj.war 拷到 tomcat 的 webapps 下


3. 瀏覽器進入:  http://localhost:8080/webServicePrj/services



第一個web service 就是我們新加的。

後面兩個是axis 的本身的。

點擊第一個 wsdl 連結。

進入: http://localhost:8080/webServicePrj/services/CalculateSOAPSOAP?wsdl

這就是服務發布的地址(實際開發中當然不會使用 localhost,而用實際的IP 或是網域名稱)





測試測試的方式,當然可以使用[Axis2與Eclipse整合開發Web Service系列之一] 產生Web Service Client(將WSDl 轉化成 Java代碼)
的方式。但是, 簡單來說,可以使用 SoapUI 這個工具來調用。
soapui :http://www.soapui.org/Downloads/


1上是11111

[Axis2與Eclipse整合開發Web Service系列之二] Top-Down方式,通過WSDL逆向產生服務端(續)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.