【发布时间】:2013-12-25 00:42:02
【问题描述】:
我正在尝试使用 WSO2 ESB 4.8.0 编写调解器并通过 HTTP REST 模式公开它。 在axis2.xml中我修改了这段代码。
<transportReceiver class="org.wso2.carbon.core.transports.http.HttpTransportListener" name="http">
<parameter locked="false" name="port">8280</parameter>
<parameter locked="false" name="non-blocking">true</parameter>
<!--parameter name="bind-address" locked="false">hostname or IP address</parameter-->
<!--parameter name="WSDLEPRPrefix" locked="false">https://apachehost:port/somepath</parameter-->
<parameter locked="false" name="httpGetProcessor">org.wso2.carbon.transport.nhttp.api.PassThroughNHttpGetProcessor</parameter>
<!--<parameter name="priorityConfigFile" locked="false">location of priority configuration file</parameter>-->
</transportReceiver>
所以现在包含中介的代理服务在 9763 端口上发布。 在中介内部,我有以下代码行:
org.apache.axis2.context.MessageContext axis2MsgContext;
axis2MsgContext = ((Axis2MessageContext) synapseMsgContext).getAxis2MessageContext();
HttpServletRequest obj = (HttpServletRequest)axis2MsgContext.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
if (obj != null) {
System.out.println("Method :"+ obj.getMethod());
System.out.println("Content-type :" +obj.getContentType());
System.out.println("Content-length :"+obj.getContentLength());
System.out.println("Remote addtress"+obj.getSession().getLastAccessedTime());
obj.getParameter("param");
}
我尝试使用一些 REST 客户端(firefox 上的海报,或 chrome 上的高级 REST 客户端)发送 POST REST 请求。 我意识到了
obj.getParameter("param")
仅当我将参数作为查询字符串附加到 url 请求时才为空。 如果在发布请求中我将参数放入正文有效负载中,则前一个函数仅返回 NULL 值。 怎么了?
【问题讨论】:
标签: rest post wso2 httprequest wso2esb