簡體   English   中英

WSO2 ESB-HTML響應

[英]WSO2 ESB - HTML Response

我構建了一個GET REST Web服務(Rest API),該服務必須返回text / html。 在序列內部,我有一個介體,可在其中調用網頁(例如http://www.mypage.com等 ),並將其內容放入String變量中。
之后,我需要在內容中進行一些字符串替換,並將其作為text / html發送回客戶端。
問題是,當我在頁面中重新獲得它時,esb將所有<html>和其他標簽替換為&lt;html&gt; 標簽。 因此,Web瀏覽器不會呈現html頁面,而只是將標簽寫入頁面本身。

主要思想是,它像Servlet的代理一樣工作,在這里我稱為Servlet,獲取響應,在獲得的de html和javascript中進行一些字符串替換,然后將其發送給客戶端。

這是序列xml:

 <resource methods="GET" uri-template="/view">
  <inSequence>
     <log level="full"/>
     <header name="To" action="remove"/>
     <property name="URL" value="http://www.mypage.com"/>
     <sequence key="MyMediator"/>
     <property name="RESPONSE" value="true"/>
     <property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
     <property name="ContentType" value="text/html" scope="axis2"/>
     <enrich>
        <source type="property" clone="true" property="RESPONSE_MSG"/>
        <target type="body"/>
     </enrich>
     <send/>
  </inSequence>

因此,我將帶有html的字符串變量(來自中介者MyMediator,它是一個Java類,並調用了網頁www.mypage.com)放入屬性“ RESPONSE_MSG”,然后嘗試將其寫入正文(豐富) 。

在這種情況下,我會得到一個錯誤,因為我設置的屬性是一個String而不是一個XML。
如果我使用payloadFactory而不是frich,那么它將生成一個XML,並且我將使用&lt;html&gt;獲得html標簽&lt;html&gt;

我想知道一種有效的方法,可以從調解器發送字符串變量,並且該變量不會轉換為某些xml,而字符串中的所有html標簽都將替換為&lt; &gt; 或者我可以像上面的代碼一樣發送它,而不會出現任何錯誤。 我必須對屬性RESPONSE_MSG中的變量使用其他類型嗎?

提前致謝!

這是使用的messageFormatter(text / html)的問題。 檢查conf目錄中的axis2.xml文件,以查看為關鍵字text / html配置了哪個messageFormatter。 否則,可以嘗試使用常規的XML構建器(即application / xml)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM