我想在WSO2 ESB 4.9.0中创建一个API资源,在那里它发回一个带有javascript内容的有效负载。此资源必须使用Content-type返回响应:text / javascript。
为此,我使用了一个payloadFactory中介,我设置了一个简单的注释行。因为,没有带有媒体类型text-plain或text-javascript的payloadFactory,我使用media-type =" json"。
而且,我得到了很好的答复。但是,当我将messageType设置为" text / javascript"我在响应中得到202个http代码,有效负载是空的。
我在调用PlainTextFormatter时会在日志中看到nullPointerException,因为我在axis2.xml中设置了org.apache.axis2.format.PlainTextFormatter和org.apache.axis2.format.PlainTextBuilder。
我的资源如下:
<resource methods="GET" uri-template="/js">
<inSequence>
<log>
<property name="*** IN" value="[API] /test/v1/jsEcho/js"/>
</log>
<payloadFactory media-type="json">
<format>//tealium universal tag - utag.sync ut4.0.201604181647, Copyright 2016 Tealium.com Inc. All Rights Reserved.</format>
<args></args>
</payloadFactory>
<property name="messageType" value="application/json" scope="axis2" type="STRING"/>
<loopback/>
</inSequence>
<outSequence>
<log>
<property name="*** OUT" value="[API] /test/v1/jsEcho/js"/>
</log>
<property name="messageType" value="text/javascript" scope="axis2" type="STRING"/>
<send/>
</outSequence>
<faultSequence></faultSequence>
</resource>
并且,日志中的错误是给定here。
有没有这样做?
答案 0 :(得分:2)
由于这是一个有趣的问题,我试过这个。好消息是,我能够完成它。
以下是我的api配置。
<api xmlns="http://ws.apache.org/ns/synapse" name="Stack" context="/stack">
<resource methods="GET" url-mapping="/js">
<inSequence>
<payloadFactory media-type="xml">
<format>
<ms11:text xmlns:ms11="http://ws.apache.org/commons/ns/payload"><![CDATA[//tealium universal tag - utag.sync ut4.0.201604181647, Copyright 2016 Tealium.com Inc. All Rights Reserved.]]></ms11:text>
</format>
<args/>
</payloadFactory>
<property name="messageType" value="text/javascript" scope="axis2"/>
<respond/>
<drop/>
</inSequence>
</resource>
</api>
让我解释一下我所做的一些事情。
请参阅我收到卷曲请求的回复。
curl -v -X GET http://localhost:8280/stack/js
< HTTP/1.1 200 OK
< Host: localhost:8280
< Content-Type: text/javascript; charset=UTF-8
< Accept: */*
< Date: Mon, 13 Jun 2016 16:52:36 GMT
< Transfer-Encoding: chunked
<
* Connection #0 to host localhost left intact
//tealium universal tag - utag.sync ut4.0.201604181647, Copyright 2016 Tealium.com Inc. All Rights Reserved.