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 で 2 つのトランスポート レシーバーを定義できる必要があります。トランスポートに異なる名前を付ける必要があります (例: http1、http2)。すべてのプロキシ サービスの例として、利用可能な 9763 http ポートを使用できるはずです。

ただし、2 つのトランスポート送信者を定義することには問題があります。http1 と http2 のような 2 つのトランスポート送信者を定義できます。しかし、http の場所を指定するときに問題が発生します。たとえば、axis2 は URL を使用してトランスポートを推測します。したがって、http:// と言うと、送信者は http と見なされます。このプロトコル名は明確に定義されているため、非標準名を使用するとトランスポート送信者を選択できません。

于 2012-07-11T04:56:05.023 に答える