MyEclipse建立webservice服務器初步搭建,以供android手機調用

轉載自http://www.cnblogs.com/jasoncc/archive/2011/12/22/2296052.htmlhtml

 

1java

       今天主要和你們分享,如何搭建一個Web服務,作Android開發,不可避免會涉及到客戶端開發,咱們怎麼樣來實現一個服務端,怎麼樣來實現一個客戶端,並相互傳遞數據。就算調用別人的服務時,也能知道大概是怎麼樣實現的。android

      WebService通常分爲.Net版和Java版,今天咱們主要來實現Java版的WebService,.Net版本的仍是比較簡單的。web

     照例,輕鬆一笑:apache

     波音777是有史以來第一架徹底在電腦虛擬現實中設計製造的飛機,所用的設備徹底由IBM公司所提供。試飛前,波音公司的總裁很是熱情的邀請IBM的技術主管去參加試飛,可那位主管卻說道:「啊,很是榮幸,惋惜那天是我妻子的生日,因此...」 
波音公司的總載一聽就生氣了:「膽小鬼,我還沒告訴你試飛的日期呢!」瀏覽器

    1

    什麼是WebServices?tomcat

    它是一種構建應用程序的廣泛模型,能夠在任何支持網絡通訊的操做系統中實施運行;它是一種新的web應用程序分支,是自包含、自描述、模塊化的應用,能夠發佈、定位、經過web調用。Web Service是一個應用組件,它邏輯性的爲其餘應用程序提供數據與服務.各應用程序經過網絡協議和規定的一些標準數據格式(Http,XML,Soap)來訪問Web Service,經過Web Service內部執行獲得所需結果.Web Service能夠執行從簡單的請求到複雜商務處理的任何功能。一旦部署之後,其餘Web Service應用程序能夠發現並調用它部署的服務。網絡

    關鍵的技術和規則併發

   在構建和使用Web Service時,主要用到如下幾個關鍵的技術和規則:異步

   1.XML:描述數據的標準方法.

  2.SOAP:表示信息交換的協議.

  3.WSDL:Web服務描述語言.

   4.UDDI:通用描述、發現與集成,它是一種獨立於平臺的,基於XML語言的用於在互聯網上描述商務的協議。

   XML

   可擴展的標記語言(XML)是Web service平臺中表示數據的基本格式。除了易於創建和易於分析外,XML主要的優勢在於它既是平臺無關的,又是廠商無關的。無關性是比技術優越性更重要的:軟件廠商是不會選擇一個由競爭對手所發明的技術的。

   SOAP

  SOAP是web service的標準通訊協議,SOAP爲simple object access protocoll的縮寫,簡單對象訪問協議. 它是一種標準化的傳輸消息的XML消息格式

   WSDL

   WSDL的全稱是web service Description Language,是一種基於XML格式的關於web服務的描述語言。其主要目的在於web service的提供者將本身的web服務的全部相關內容,如所提供的服務的傳輸方式,服務方法接口,接口參數,服務路徑等,生成相應的徹底文檔,發佈給使用者。使用者能夠經過這個WSDL文檔,建立相應的SOAP請求消息,經過HTTP傳遞給webservice提供者;web服務在完成服務請求後,將SOAP返回消息傳回請求者,服務請求者再根據WSDL文檔將SOAP返回消息解析成本身可以理解的內容。

  UDDI

   將web service進行UDDI註冊發佈,UDDI是一種建立註冊表服務的規範,以便你們將本身的web service進行註冊發佈供使用者查找.然而當服務提供者想將本身的web service向全世界公佈,以便外部找到其服務時,那麼服務提供者能夠將本身的web service註冊到相應的UDDI商用註冊網站,目前全球有IBM等4家UDDI商用註冊網站。由於WSDL文件中已經給定了web service的地址URI,外部能夠直接經過WSDL提供的URI進行相應的web service調用。因此UDDI並非一個必需的web service組件,服務方徹底能夠不進行UDDI的註冊。

  建立併發布本身的WS

  1 安裝MyEclipse

  2 配置Tomcat

   打開MyEclipse

   2

   菜單欄 –> File –> New –> Web Service Project

   3

   在這裏,咱們使用JAX-WS方式。

  JAX-WS

  Jax-WS是Java1.6中才有的,新的WebService模式,基於註解的方式配置WebService,很相似Asp中的WebService,難度已經比Xfire方式的配置下降了不少.

   REST(JAX-RS)

   用的比較少

   Xfire(已過期)

   配置比較繁瑣

  建立Service中的包及類庫,實現本身的業務。

  咱們建立的是一個用戶管理系統,天然須要來管理用戶。

  4

  發佈WS

   5

  6

 7

  到此WS發佈完成,接下來配置TomCat

  8

  在彈出的窗體中依次展開 MyEclipse ->Servers –>Tomcat

 9

 11

12

  對着項目右擊添加庫文件

  13

14

15

  到此,全部步驟都以配置完畢 開始部署

  16

  啓動TomCat

  17

  在工具欄中找到部署圖標

  18

  19

  部署完成,打開IE進行測試

輸入url:http://localhost:8080/UserMgrService/UserInfoPort?wsdl 便可打開如上界面

以上是轉載,下述是android測試

 

2 .android端

導入ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar包

public static int test() {
String url = "http://192.168.0.89:8080/UserMgrService/UserInfoPort?wsdl";
String nameSpace = "http://test1.service.xz.momo.com/";
int result = 0;
String methodName = "getUserInfo";
SoapObject request = new SoapObject(nameSpace, methodName);

//如下方法添加參數,參數名必須與webservice裏的參數名保持一致,另外就是以java方式建立的webservice即便名稱相同也 接收不到參數

//在網上搜索方案都說發現用arg0...代替,可是dotNet要設置爲false,若是爲true,即便使用arg0...也沒法獲取參數

//request.addProperty("xxxxx", xxxxx);

 

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = request;
envelope.dotNet = false;
HttpTransportSE ht = new HttpTransportSE(url, 30000);
try {
ht.call(null, envelope);
SoapPrimitive primitive = (SoapPrimitive) envelope.getResponse();
Log.i("cenco", "primitive=" + primitive);
} catch (Exception e) {

}

return result;
}

開啓異步線程調用此方法便可返回字符串

 

3.若是引用外部jar包,須要將jar包同步放到tomcat的lib目錄下

4.安裝XAMPP 修改根目錄

本人電腦裝的XAMPP集合軟件,其一鍵安裝PHP+MySQL+Apache很是方便。但其安裝之後,網站的根目錄默認在XAMPP的子文件夾 htdocs下面,日常想要在電腦上快速打開該目錄很是不方便。畢業後沒有怎麼弄網站,不以爲繁瑣,如今開始折騰WP,一天開個幾回這個目錄,以爲實在耐心不行了。因而把網站根目錄修改了,其流程以下。

第一,打開httpd.conf文件。其位置位於XAMPP安裝目錄下面的「apacheconf」文件夾裏。
第二,修改代碼。在httpd.conf文件中找到以下兩行代碼,並進行修改。(C:/xampp/htdocs爲我本人網站原始根目錄)
  DocumentRoot "C:/xampp/htdocs" <Directory "C:/xampp/htdocs"> 將兩個目錄更改成你所但願的目錄便可,如我修改以下:(C:/Web爲我本人新的網址根目錄)
  DocumentRoot "C:/Webs" <Directory "C:/Webs">;

第三,在目標文件夾下放置一張圖片,重啓Apache,瀏覽器打開能夠查看到即成功。

相關文章
相關標籤/搜索