您好,登錄后才能下訂單哦!
本篇內容主要講解“BIRT如何調用Webservice作為數據源”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“BIRT如何調用Webservice作為數據源”吧!
BIRT雖然提供了訪問基于SOAP的Web Services,可以使用SOAP響應作為生成報表的數據。但總的來說,操作起來還是太麻煩了,靈活性也不夠:
1、配置過程步驟多,過于繁瑣。
2、引入的JAR很多,太重了。
3、API接口多,代碼寫起來很長,調試不方便。
4、只能接收簡單結果,沒有二次計算的能力。
比如要處理這么個場景:根據傳入參數,調用外部WebService,返回該地區的天氣情況。URL:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=...
調用服務后返回的XML數據格式如下:
<?xml version="1.0" encoding="utf-8"?> <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://WebXml.com.cn/"> <string>Henan (Province).</string> <string>Xinyang(City).</string> <string>464000</string> <string>57297.jpg</string> <string>2019/12/20 16:00:31</string> <string>0°C/10°C</string> <string>December 20 is cloudy to overcast</string> <string>East to north is less than category 3</string> <string>...</string> </ArrayOfString> |
期望結構化后的效果:
建議使用集算器,它將HTTP服務的url串的返回結果封裝成文件流,實現同樣的算法只需更少的代碼,分步執行調試也方便,且精心設計了一套集合運算領域的函數庫,以應對結構化后的各類運算,不再需要第三方數據庫來協助。最后將計算結果返回給BIRT的DataSet進行直接報表展現,比如上面的問題,只需5行:
A | |
1 | =wsdl=concat("\"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=",urlencode("Xinyang","UTF-8"),"\":\"UTF-8\"") |
2 | =httpfile(${wsdl}) |
3 | =xml(file(A2).read(),"ArrayOfString/string") |
4 | =create(${A1.(concat("str",#)).concat@c()}) |
5 | >A4.record(A3) |
到此,相信大家對“BIRT如何調用Webservice作為數據源”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。