我有兩個webservices。基本上,我們需要一個輸入字符串,並返回一個xml文檔。第二個從第一個獲取xml並返回一個xml文檔。我對第二份文件感興趣。使用駱駝的webservices鏈條
美中不足的是,我不能修改這些web服務反正是如何工作的,以及輸入參數的URL是內部被髮送
(它不要求身體內部工作)所以基本上,我想調用一個輸入=正文(這是工作)的Web服務。然後我想調用第二個webservice,第一個返回input = body。
這裏是我的駱駝配置:
<route>
<from uri="direct:language-identifier" />
<toD uri="http://opener.olery.com/language-identifier?input=${body}&bridgeEndpoint=true"/>
</route>
<route>
<from uri="direct:tokenizer" />
<setHeader headerName="input"><simple>${in.body}</simple></setHeader>
<toD uri="http://opener.olery.com/tokenizer?bridgeEndpoint=true"/>
</route>
<route>
<from uri="servlet:opener-preparse"/>
<pipeline>
<to uri="direct:language-identifier"/>
<to uri="direct:tokenizer"/>
</pipeline>
</route>
我的問題是:
當我使用TOD在第二web服務傳遞的輸入參數,我得到一個無效字符(可能是因爲該數據包含新行)
當我使用setheader就像在前面的配置中,第二個服務的輸入是從初始數據(不是由第一個web服務返回的數據)
我該如何解決它?
這沒有奏效。現在與NullPointerException交換失敗。真的沒有辦法像這樣做兩個Web服務的愚蠢鏈? – Atrakeur
在Web服務端點中使用通配符時,例如$ {body},將您的body轉換爲標頭,然後將其設置爲null並將通配符更改爲$ {header}。 –