溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

BIRT如何調(diào)用Webservice作為數(shù)據(jù)源

發(fā)布時(shí)間:2021-08-19 09:21:54 來源:億速云 閱讀:141 作者:chen 欄目:web開發(fā)

本篇內(nèi)容主要講解“BIRT如何調(diào)用Webservice作為數(shù)據(jù)源”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“BIRT如何調(diào)用Webservice作為數(shù)據(jù)源”吧!

BIRT雖然提供了訪問基于SOAP的Web Services,可以使用SOAP響應(yīng)作為生成報(bào)表的數(shù)據(jù)。但總的來說,操作起來還是太麻煩了,靈活性也不夠:

1、配置過程步驟多,過于繁瑣。

2、引入的JAR很多,太重了。

3、API接口多,代碼寫起來很長,調(diào)試不方便。

4、只能接收簡單結(jié)果,沒有二次計(jì)算的能力。

比如要處理這么個(gè)場景:根據(jù)傳入?yún)?shù),調(diào)用外部WebService,返回該地區(qū)的天氣情況。URL:

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=...

調(diào)用服務(wù)后返回的XML數(shù)據(jù)格式如下:

<?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>

期望結(jié)構(gòu)化后的效果:

BIRT如何調(diào)用Webservice作為數(shù)據(jù)源

建議使用集算器,它將HTTP服務(wù)的url串的返回結(jié)果封裝成文件流,實(shí)現(xiàn)同樣的算法只需更少的代碼,分步執(zhí)行調(diào)試也方便,且精心設(shè)計(jì)了一套集合運(yùn)算領(lǐng)域的函數(shù)庫,以應(yīng)對(duì)結(jié)構(gòu)化后的各類運(yùn)算,不再需要第三方數(shù)據(jù)庫來協(xié)助。最后將計(jì)算結(jié)果返回給BIRT的DataSet進(jìn)行直接報(bào)表展現(xiàn),比如上面的問題,只需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)


到此,相信大家對(duì)“BIRT如何調(diào)用Webservice作為數(shù)據(jù)源”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI