使用 Axis2 搭建一個Webservice 服務(wù)(提供demo下載)

WebService 概述

Web service是一個平臺獨立的,低耦合的波岛,自包含的材彪、基于可編程的web的應(yīng)用程序冠息,可使用開放的XML(標準通用標記語言下的一個子集)標準來描述碱蒙、發(fā)布荠瘪、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序赛惩,用于開發(fā)分布式的互操作的應(yīng)用程序哀墓。

Web Service技術(shù), 能使得運行在不同機器上的不同應(yīng)用無須借助附加的喷兼、專門的第三方軟件或硬件篮绰, 就可相互交換數(shù)據(jù)或集成。依據(jù)Web Service規(guī)范實施的應(yīng)用之間褒搔, 無論它們所使用的語言阶牍、 平臺或內(nèi)部協(xié)議是什么, 都可以相互交換數(shù)據(jù)星瘾。Web Service是自描述、 自包含的可用網(wǎng)絡(luò)模塊惧辈, 可以執(zhí)行具體的業(yè)務(wù)功能琳状。Web Service也很容易部署, 因為它們基于一些常規(guī)的產(chǎn)業(yè)標準以及已有的一些技術(shù)盒齿,諸如標準通用標記語言下的子集XML念逞、HTTP。Web Service減少了應(yīng)用接口的花費边翁。Web Service為整個企業(yè)甚至多個組織之間的業(yè)務(wù)流程的集成提供了一個通用機制翎承。
更多內(nèi)容請查看:http://baike.so.com/doc/5411995-5650117.html

創(chuàng)建服務(wù)端代碼

1:新建一個web工程如下圖所示:


new-->Dynamic Web Project

2:編寫服務(wù)端的接口和它的實現(xiàn)類如下圖所示:

接口定義和實現(xiàn)

3:在web.xml 中添加對應(yīng)的servlet

  <servlet-name>AxisServlet</servlet-name> 
  <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
  <servlet-name>AxisServlet</servlet-name> 
  <url-pattern>/services/*</url-pattern> 
</servlet-mapping>```

4:在WEB-INF 下面新建server-config.wsdd 文件內(nèi)容如下:

<?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">
<handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
</requestFlow>
</transport>


<service name="myFirstWebservice" provider="java:RPC">

<parameter name="className" value="com.test.server.WBServiceImpl" />
<parameter name="allowedMethods" value="*" />
</service>
</deployment>


5:部署工程到Tomcat中查看是否已對應(yīng)的WSDL生成,本例子的URL為:http://localhost:8080/wsServer/services/myFirstWebservice?wsdl符匾。
如果出現(xiàn)如圖所示則表示您已經(jīng)成功的部署好服務(wù)端的WebService了叨咖。

![生成的WSDl](http://upload-images.jianshu.io/upload_images/303808-11e7f5f8fc2ed9bd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#創(chuàng)建客戶端調(diào)用WebService接口

package com.test.client;

import java.net.MalformedURLException;
import java.rmi.RemoteException;

import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.encoding.XMLType;

import org.apache.axis.client.Call;
import org.apache.axis2.util.URL;

public class Test {

public static void main(String[] args) {
    test1();
}
 public static void test1() { 
        try { 
             // 1.創(chuàng)建service對象,通過axis自帶的類創(chuàng)建 
            org.apache.axis.client.Service service = new org.apache.axis.client.Service(); 
            // 2.創(chuàng)建url對象 
             String wsdlUrl = "http://localhost:8080/wsServer/services/myFirstWebservice?wsdl";//請求服務(wù)的URL 
            URL url = new URL(wsdlUrl);//通過URL類的構(gòu)造方法傳入wsdlUrl地址創(chuàng)建URL對象 
            // 2.創(chuàng)建服務(wù)方法的調(diào)用者對象call啊胶,設(shè)置call對象的屬性 
             Call call = (Call) service.createCall(); 
             call.setTargetEndpointAddress(wsdlUrl);//給call對象設(shè)置請求的URL屬性 
             String serviceName = "getServerDesc"; 
             call.setOperationName(serviceName);//給call對象設(shè)置調(diào)用方法名屬性 
             call.addParameter("getServerDesc", XMLType.SOAP_ARRAY, ParameterMode.IN);// 給call對象設(shè)置方法的參數(shù)名甸各、參數(shù)類型、參數(shù)模式 
             call.setReturnType(XMLType.SOAP_STRING);// 設(shè)置調(diào)用方法的返回值類型 
            //4.通過invoke方法調(diào)用webservice 
            String userName = "平行線"; 
            String res = (String) call.invoke(new Object[] { userName });//調(diào)用服務(wù)方法 
            System.out.println(res); 
         } catch (ServiceException e) { 
             e.printStackTrace(); 
        } catch (RemoteException e) { 
             e.printStackTrace(); 
         } 
     } 

}

控制臺輸出了“您好:平行線您已經(jīng)成功調(diào)用到我們的服務(wù)焰坪!”表示客戶端也成功的調(diào)用了WebService接口了
![調(diào)用接口的結(jié)果](http://upload-images.jianshu.io/upload_images/303808-088ee22685a759f7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

注:Demo下載地址:https://yunpan.cn/cYhqqE6ji8yvJ  訪問密碼 8d8e

希望給看到這篇文章的小伙伴有所幫助趣倾,如果有什么地方講的不對也希望大俠們多多指點。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末某饰,一起剝皮案震驚了整個濱河市儒恋,隨后出現(xiàn)的幾起案子善绎,更是在濱河造成了極大的恐慌,老刑警劉巖诫尽,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件禀酱,死亡現(xiàn)場離奇詭異,居然都是意外死亡箱锐,警方通過查閱死者的電腦和手機比勉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驹止,“玉大人浩聋,你說我怎么就攤上這事‰担” “怎么了衣洁?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長抖仅。 經(jīng)常有香客問我坊夫,道長,這世上最難降的妖魔是什么撤卢? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任环凿,我火速辦了婚禮,結(jié)果婚禮上放吩,老公的妹妹穿的比我還像新娘智听。我一直安慰自己,他們只是感情好渡紫,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布到推。 她就那樣靜靜地躺著,像睡著了一般惕澎。 火紅的嫁衣襯著肌膚如雪莉测。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天唧喉,我揣著相機與錄音捣卤,去河邊找鬼。 笑死欣喧,一個胖子當著我的面吹牛腌零,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播唆阿,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼益涧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了驯鳖?” 一聲冷哼從身側(cè)響起闲询,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤久免,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后扭弧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阎姥,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年鸽捻,在試婚紗的時候發(fā)現(xiàn)自己被綠了呼巴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡御蒲,死狀恐怖衣赶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情厚满,我是刑警寧澤府瞄,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站碘箍,受9級特大地震影響遵馆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丰榴,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一货邓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧四濒,春花似錦逻恐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拨匆。三九已至姆涩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惭每,已是汗流浹背骨饿。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留台腥,地道東北人宏赘。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像黎侈,于是被迫代替她去往敵國和親察署。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理峻汉,服務(wù)發(fā)現(xiàn)贴汪,斷路器脐往,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法扳埂,內(nèi)部類的語法业簿,繼承相關(guān)的語法,異常的語法阳懂,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • 一梅尤、Java基礎(chǔ) 1.寫出下面代碼的執(zhí)行結(jié)果 2.寫出下面代碼的執(zhí)行結(jié)果 3.寫出下面代碼的執(zhí)行結(jié)果 (此題需寫出...
    joshul閱讀 509評論 0 1
  • Appium安裝 服務(wù)環(huán)境 1安裝Nodejs 下載nodejs安裝包(http://nodejs.org/dow...
    七月尾巴_葵花閱讀 988評論 0 7
  • 城市是臟的 破碎的地面老是滲出水來 角落的衣柜深處霉菌茁壯 渾濁的過去被一層層地掩埋 每片磚瓦都竭盡所能地藏污納垢...
    魚筐七月閱讀 285評論 0 1