JAVA開發Web Service幾種框架介紹

下面分別介紹一個這幾種Web Service框架的基本概念
1、JWS是Java語言對WebService服務的一種實現,用來開發和發布服務。而從服務本身的角度來看JWS服務是沒有語言界限的。但是Java語言為Java開發者提供便捷發布和調用WebService服務的一種途徑。

2、Axis2是Apache下的一個重量級WebService框架,準確說它是一個Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制作和發布WebService,而且可以生成Java和其他語言版WebService客戶端和服務端代碼。這是它的優勢所在。但是,這也不可避免的導致了Axis2的復雜性,使用過的開發者都知道,它所依賴的包數量和大小都是很驚人的,打包部署發布都比較麻煩,不能很好的與現有應用整合為一體。但是如果你要開發Java之外別的語言客戶端,Axis2提供的豐富工具將是你不二的選擇。

3、XFire是一個高性能的WebService框架,在Java6之前,它的知名度甚至超過了Apache的Axis2,XFire的優點是開發方便,與現有的Web整合很好,可以融為一體,并且開發也很方便。但是對Java之外的語言,沒有提供相關的代碼工具。XFire后來被Apache收購了,原因是它太優秀了,收購后,隨著Java6 JWS的興起,開源的WebService引擎已經不再被看好,漸漸的都敗落了。

4、CXF是Apache旗下一個重磅的SOA簡易框架,它實現了ESB(企業服務總線)。CXF來自于XFire項目,經過改造后形成的,就像目前的Struts2來自WebWork一樣。可以看出XFire的命運會和WebWork的命運一樣,最終會淡出人們的視線。CXF不但是一個優秀的Web Services / SOAP / WSDL 引擎,也是一個不錯的ESB總線,為SOA的實施提供了一種選擇方案,當然他不是最好的,它僅僅實現了SOA架構的一部分。
注:對于Axis2與CXF之間的關系,一個是Axis2出現的時間較早,而CXF的追趕速度快。


如何抉擇:
1、如果應用程序需要多語言的支持,Axis2 應當是首選了;
2、如果應用程序是遵循 Spring 哲學路線的話,Apache CXF 是一種更好的選擇,特別對嵌入式的 Web Services 來說;
3、如果應用程序沒有新的特性需要的話,就仍是用原來項目所用的框架,比如 Axis1,XFire,Celtrix或 BEA 等等廠家自己的 Web Services 實現,就別勞民傷財了。


最后,我的建議是:如果你需要多語言的支持,你應該選擇AXIS2。如果你需要把你的實現側重JAVA并希望和Spring集成,CXF就是更好的選擇,特別是把你的Web Service嵌入其他的程序中。如果你覺得這兩個框架的新特性對于你并沒有太大的用處,你會覺得Axis1也是不錯的選擇,你應該繼續使用它直到你有充分的理由去更換它。

轉載于:https://www.cnblogs.com/zhuyiqizhi/p/6045638.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256025.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256025.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256025.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于CMake構建MSVC_CUDA及MinGW編譯環境下的的OpenCV項目

前言 第一次搭建OpenCV開發環境的時候各種報錯,內心那個煩啊,簡直了。當時只能針對某個特定的錯誤去尋找特定的解決方法,在OpenCV構建過程中出現最多的問題就是各個模塊文件的下載問題,本質上這類問題的解決思路都是一樣的&#…

OC Autorelease

implementation ViewController - (void)viewDidLoad {[super viewDidLoad];__unsafe_unretained NSObject *obj1 [ViewController getObj];NSLog("%",obj1); // 運行OK__unsafe_unretained NSObject *obj2 [ViewController getObj];NSLog("%",obj2); //…

【opencv】——鋼管計數(霍夫圓變換 + 閾值 + canny)

目錄 方法一:霍夫圓變換 + canny 方法二 閾值 + 尋邊 對圖中的鋼管進行計數 方法一:霍夫圓變換 + canny

svn服務器搭建-SuSE Linux Enterprise Server 11 SP3

svn存儲版本數據也有2種方式:1.bdb;2.fsfs。因為BDB方式在服務器中斷時,有可能鎖住數據(搞ldap時就深受其害,沒法根治),所以還是FSFS方式更安全一點,我也選擇這種方式。下載相關軟件…

Swift 2.0初探:值得注意的新特性

轉眼間,Swift已經一歲多了,這門新鮮、語法時尚、類型安全、執行速度更快的語言已經漸漸的深入廣大開發者的心。我同樣也是非常喜愛這門新的編程語言。 今年6月,一年一度的WWDC大會如期而至,在大會上Apple發布了Swift 2.0&#xff…

Android 自定義WebView彈窗及屏蔽彈窗

額,還是那個WebView的問題,內核已換成騰訊X5內核,所以接下來的內容會有一些X5內核的方法。但我們的H5是不能改的,還是只有委屈我們自己。先看看H5自帶的彈窗 這樣子的彈窗在不同的手機上呈現的可能是不同的效果,效果不…

【圖像處理】——Python實現two_pass方法來進行連通域的提取

目錄 一、相關知識 1、two_pass算法思想 2、并查集算法 二、自定義的two_pass算法

C++ 多線程使用future傳遞異常

如果 std::async 調用的函數拋出異常,那么這個異常會被存儲在值的位置,同時 future 變為 ready ,如果調用 get() 會重新拋出存儲的異常。 Note: 標準并沒有指定原來的異常對象是被重新拋出或者拷貝后拋出,不同的編譯器會做不同的選擇。 對于 …

期貨黃金與現貨黃金比較

現貨黃金與期貨黃金是目前市場上最熱門的黃金投資方式,與國內任何的金融投資品相比,都具有一定的優勢。 其實金投網小編覺得現貨黃金與期貨黃金最主要的不同點是這個:期貨黃金做的是國內市場,同股票市場一樣,里面有莊家…

DNS域傳送漏洞

0x00 相關背景介紹 Dns是整個互聯網公司業務的基礎,目前越來越多的互聯網公司開始自己搭建DNS服務器做解析服務,同時由于DNS服務是基礎性服務非常重要,因此很多公司會對DNS服務器進行主備配置而DNS主備之間的數據同步就會用到dns域傳送&#…

封裝之--通過類中公有方法訪問私有成員變量

如何在ClassB中訪問ClassA的私有成員變量?(典型的封裝案例) 通過在ClassA中定義公有的成員方法,然后,在ClassB中通過ClassA的對象調用ClassA中的公有方法,來訪問ClassA中的私有成員變量。 轉載于:https://w…

匹配物鏡放大倍數與相機像元尺寸

通常來說,相機內部的CCD或者CMOS傳感器上都有感光陣列,由一個一個的感光元件構成,每一個感光元件負責完成光電轉換的過程。簡單理解,一個感光元件可以認為就是一個像素(pixel)或像元(pel)。像元具有一定尺寸,如果像的尺…

2016/11/10 kettle概述

ETL(Extract-Transform-Load,即抽取,轉換,加載),數據倉庫技術,是用來處理將數據從來源(以前做的項目)經過抽取,轉換,加載到達目的端(正在做的項目&#xff09…

【深度學習】——非極大值抑制(nms/soft-nms)

目錄 一、相關概念 1、iou 1)理論計算 2)Python代碼(代碼參考yolov3模型util.py文件) 2、nms 1)基本思路 2)標準nms和soft-nms 3)Python代碼實現(yolov3中util.py文件,增加了…

移動服務安全現狀分析!

2019獨角獸企業重金招聘Python工程師標準>>> 由于Android開源的環境,導致Android的整體環境都存在很多不安全的因素,同時用戶在移動APP客戶端的便捷應用,也給用戶帶來了巨大的安全隱患。未經過移動服務安全加固的APP存在被靜態反編…

封裝不同類模板的隨機數生成器

最近準備刷題,打算簡單封裝下隨機數生成器,方便產生測試數據。C11的STL提供了很多分布類型,我比較常用的是均勻分布,均勻分布的值有兩種類型,一類是整數,另一類是浮點數,STL根據值的類型定義了兩…

Log4j詳細設置說明

1. 動態的改變記錄級別和策略,即修改log4j.properties,不需要重啟Web應用,這需要在web.xml中設置一下。2. 把log文件定在 /WEB-INF/logs/ 而不需要寫絕對路徑。3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Pat…

【機器學習】——卷積神經網絡(Keras)修改學習率(定值+自適應)

目錄 1、直接獲取現有模型的學習率 2、打印顯示學習率 3、調整學習率 1)1.LearningRateScheduler 2)ReduceLROnPlateau 利用tensorflow的Keras模塊我們可以建立我們自己定義的卷積神經網絡模型,但是一般不會觸碰到學習率這個問題&#x…

使用Docker構建你的第一個服務

1. 感受一下Docker的便捷 項目源碼 https://github.com/MoonShining/dockernize-grape-helloworld clone下來以后運行,cd到項目目錄下,運行 docker build -t api-sample . docker run -p 8080:8080 api-sample:latest 復制代碼就可以訪問localhost:8080看到效果了. …

MyEclipse連接MySQL

在官網http://www.mysql.com/downloads/下載數據庫連接驅動 本文中使用驅動版本為mysql-connector-java-5.1.40 一、創建一個java測試項目MySQLConnectorsTest 在項目下穿件一個lib文件夾用來存放MySQL驅動包。 右鍵驅動包build path進行add添加操作,打開Referenced…