2

我正在 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 对目录服务进行身份验证。Cookie 位于 HTTPServletRequest 对象中,并且仅当我不使用 NIO 传输并使用默认的 HTTP 传输接收器时才可用。

请帮忙。谢谢阿比吉特

4

1 回答 1

1

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

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

于 2012-07-11T04:56:05.023 回答