首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTP与HTTP传输

HTTP与HTTP传输
EN

Stack Overflow用户
提问于 2013-12-24 05:20:17
回答 1查看 639关注 0票数 1

我已经开发了一个自定义中介器,我想尝试将其作为REST服务发布到我的WSO2 ESB4.7.0上。创建REST API后,ESB将其发布到8280端口。在客户端,POST REST调用需要指定一些http参数,稍后需要通过以下代码在中介程序中恢复这些参数:

代码语言:javascript
复制
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());  
}

我得到的对象总是空的。这可能是因为在8280ESB上使用了NHttp传输。

我可以用什么方法解决这个问题?

我必须激活HTTP Servlet传输吗?我该怎么做呢?通过在WSO2企业服务总线中安装WSO2应用服务器(我已经这样做了,但是我如何指定我希望在9763端口上公开一个服务呢?)?

HTTP和NHTTP有什么区别?ESB性能会变低吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-24 09:52:11

您可以配置WSO2ESB侦听多个端口。

默认情况下它使用8280,您可以更改此设置或添加另一个监听器。

代码语言:javascript
复制
 <transportReceiver name="http" class="org.apache.synapse.transport.passthru.PassThroughHttpListener">
    <parameter name="port" locked="false">8280</parameter>
    <parameter name="non-blocking" locked="false">true</parameter>
    <!--parameter name="bind-address" locked="false">hostname or IP address</parameter-->
    <!--parameter name="WSDLEPRPrefix" locked="false">https://apachehost:port/somepath</parameter-->
    <parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.PassThroughNHttpGetProcessor</parameter>
    <!--<parameter name="priorityConfigFile" locked="false">location of priority configuration file</parameter>-->
</transportReceiver>

NHTTP或PTT用于协调消息。

致以最好的问候,马拉卡

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20751335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档