利用AXIS2傳遞JSON數據


Axis2是目前比較流行的WebService引擎。WebService被應用在很多不同的場景。例如,可以使用WebService來發布服務端 Java類的方法,以便使用不同的客戶端進行調用。這樣可以有效地集成多種不同的技術來完成應用系統。WebService還經常被使用在SOA中,用於 SOA各個部分交換數據。本文重點在於如何使用AXIS2引擎實現傳遞JSON數據。

博主本人由於項目需要,所以就查找了關於Web Service的文章。但礙於博主對Web的不熟,所以很多也就是按照網上教程做的。或許有許多地方不對。還請各位海涵了。

首先按照《axis2之webservice新手超詳細教程》這篇文檔搭建了AXIS2的開發環境。接着我想讓服務器傳遞JSON的數據,然后就又查找了如下的兩篇資料:《JSON web service with Java and Axis2》和《Building a JSON web service with Java and Axis2

這兩篇資料是老外寫的,內容差不多,但是不夠詳細,沒有對具體操作進行說明。下面一個是國人寫的《Axis2與Android的Json(Gson)通信傳數據》,這篇文檔的方法也是按照上述兩篇的文章的方法做的,具體就交代了每一步的操作。本文就在此基礎上,將每步闡述如下,並且會將各部分的資料上傳到百度雲盤,方便各位下載。

第一步:按照1的方法,按部就班的安裝 AXIS2。所需要下載的axis.war包和eclipse的兩個插件都會放在百度雲盤里。
下載地址:http://pan.baidu.com/s/13ThAk

第二步:下載DynamicResponseHandler(wso2dynamic-response-1.5.mar)模塊,復制到webservice項目中的WEB-INF/modules中,將wso2dynamic-response-1.5.mar加到modules.list文件中。
下載地址:http://pan.baidu.com/s/1gm56z

第三步:下載Jettison 1.2和jettison-1.2-patched.jar,放入WEB-INF/lib中的模塊,刪除jettison-1.0-RC2.jar。
下載地址:都在第二步下載的包中。

第四步:找到tomcat\webapps\axis2\WEB-INF\conf\axis2.xml文件,添加xml

<module ref="DynamicResponseHandler"/>

第五步:在axis2.xml添加JSON消息格式,一定要是<messageFormatters>標簽里,原來有這個標簽的則在原來的標簽里加,如果原來沒有這個標簽則才新加:

<messageFormatters>

<messageFormattercontentType="application/json"class="org.apache.axis2.json.JSONMessageFormatter"/> 

<messageFormattercontentType="application/json/badgerfish"class="org.apache.axis2.json.JSONBadgerfishMessageFormatter"/> 

 </messageFormatters>

第六步:在axis2.xml添加JSON消息編譯,一定要是<messageBuilders>標簽里,原來有這個標簽的則在原來的標簽里加,如果原來沒有這個標簽則才新加:

<messageBuilders>

<messageBuildercontentType="application/json"class="org.apache.axis2.json.JSONOMBuilder"/> 

<messageBuildercontentType="application/json/badgerfish"class="org.apache.axis2.json.JSONBadgerfishOMBuilder"/> 

</messageBuilders>

執行完以上步驟后,打開Tomcat服務器,在瀏覽器中輸入測試url:http://localhost:8080/axis2/services/Version/getVersion?response=application/json

瀏覽器將返回如下的內容:返回的值為:

{"return":"Hi - the Axis2version is 1.6.2"}

這樣就完成了AXIS2的 JSON 傳值配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM