WSO2 ESB - HTML响应

时间:2012-11-25 02:38:26

标签: html rest wso2 wso2esb esb

我构建了一个GET REST webservice(Rest API),它必须返回text / html。 在序列中我有一个Mediator,我在其中调用一个网页(如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)放入属性&#39; RESPONSE_MSG&#39;然后尝试将其写入身体(充实)。

在这种情况下,我收到一个错误,因为我设置的属性是String而不是XML。
如果我使用payloadFactory而不是rich,那么它将生成一个XML,我将获得带有&lt;html&gt;的html标签。

我想知道一种有效的方法,我可以从中介发送字符串变量,并且它不会转换为某些xml,其中字符串中的所有html标记都被&lt;和{{1 }}。或者我可以像上面的代码一样发送它而不会出现任何错误。我是否必须使用另一种类型作为我在RESPONSE_MSG属性中放入的变量?

提前致谢!

1 个答案:

答案 0 :(得分:0)

这是使用过的messageFormatter(text / html)的问题。检查conf目录中的axis2.xml文件,以查看为关键字text / html配置的messageFormatter。否则可以尝试使用普通的XML构建器(即application / xml)。

相关问题