【问题标题】:Is it possible to define 2 HTTP Transport receivers for WSO2 ESB?是否可以为 WSO2 ESB 定义 2 个 HTTP 传输接收器?
【发布时间】:2012-07-09 20:51:04
【问题描述】:

我正在 Mac 10.7.4 上开发 WSO2 ESB 4.0.3。

我正在尝试在axis2.xml中设置2个HTTP传输监听器,如下所示

<transportReceiver name="http-default" class="org.wso2.carbon.core.transports.http.HttpTransportListener">
    <!--
       Uncomment the following if you are deploying this within an application server. You
       need to specify the HTTP port of the application server
    -->
    <parameter name="port">8580</parameter>

    <!--
   Uncomment the following to enable Apache2 mod_proxy. The port on the Apache server is 80
   in this case.
    -->
    <!--<parameter name="proxyPort">80</parameter>-->
</transportReceiver>

<transportReceiver name="http-default" class="org.wso2.carbon.core.transports.http.HttpsTransportListener">
    <!--
       Uncomment the following if you are deploying this within an application server. You
       need to specify the HTTPS port of the application server
    -->
    <parameter name="port">8543</parameter>

    <!--
   Uncomment the following to enable Apache2 mod_proxy. The port on the Apache server is 443
   in this case.
    -->
    <!--<parameter name="proxyPort">443</parameter>-->
</transportReceiver>
<transportReceiver name="http" class="org.apache.synapse.transport.nhttp.HttpCoreNIOListener">
    <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.NHttpGetProcessor</parameter>
    <!--<parameter name="priorityConfigFile" locked="false">location of priority configuration file</parameter>-->
</transportReceiver>

<!-- the non blocking https transport based on HttpCore + SSL-NIO extensions -->
<transportReceiver name="https" class="org.apache.synapse.transport.nhttp.HttpCoreNIOSSLListener">
    <parameter name="port" locked="false">8243</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="priorityConfigFile" locked="false">location of priority configuration file</parameter>-->
    <parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.NHttpGetProcessor</parameter>
    <parameter name="keystore" locked="false">
        <KeyStore>
            <Location>repository/resources/security/wso2carbon.jks</Location>
            <Type>JKS</Type>
            <Password>wso2carbon</Password>
            <KeyPassword>wso2carbon</KeyPassword>
        </KeyStore>
    </parameter>
    <parameter name="truststore" locked="false">
        <TrustStore>
            <Location>repository/resources/security/client-truststore.jks</Location>
            <Type>JKS</Type>
            <Password>wso2carbon</Password>
        </TrustStore>
    </parameter>
    <!--<parameter name="SSLVerifyClient">require</parameter>
        supports optional|require or defaults to none -->
</transportReceiver>

我也配置了对应的发件人。

问题是,是否可以在axis2.xml中定义2个HTTP传输接收器?

当我尝试启动 ESB 时,它不允许我定义 2 个 HTTP 传输接收器。我想为某些服务使用 NIO 传输接收器,为其他服务使用默认的 HTTP 传输接收器。这是因为部署在 WSO2 ESB 中的某些服务使用由其他进程设置的 cookie 对目录服务进行身份验证。 Cookies 在 HTTPServletRequest 对象中,只有在我不使用 NIO 传输并使用默认的 HTTP 传输接收器时才可用。

请帮忙。 谢谢 阿比吉特

【问题讨论】:

    标签: wso2 wso2esb


    【解决方案1】:

    您应该能够在 ESB 中定义两个传输接收器,您需要为传输提供不同的名称(例如 http1、http2)。对于所有代理服务的示例,您应该能够使用可用的 9763 http 端口。

    但是,定义两个传输发送者存在问题。您可以定义两个传输发送方,如 http1 和 http2。但是在给出http位置时问题就来了。例如,我们axis2使用url推断传输。因此,当我们说 http:// 时,它将发送者作为 http。由于此协议名称已明确定义,因此当您使用非标准名称时,它无法选择传输发件人。

    【讨论】:

    • 当我尝试这样做时,尝试使用 HTTPS 传输部署一些服务时会出现很多错误。这是错误的错误示例 [2012-07-16 16:45:05,097] ERROR - Axis2ServiceRegistry Error building service from bundle : Symbolic Name: org.wso2.carbon.application.mgt,Bundle Version: 3.2.2, ID :145 org.apache.axis2.deployment.DeploymentException:服务 [ApplicationAdmin] 正在尝试在传输中公开:https 并且在 Axis2 中不可用
    猜你喜欢
    • 2013-06-24
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    相关资源
    最近更新 更多