WSO2 ESB代理到IS

时间:2016-02-19 19:48:52

标签: wso2 wso2esb wso2is

我正在尝试使用WSO2 ESB来使用服务,例如“services / UserIdentityManagementAdminService?wsdl”和wso2中的“wso2 / scim / Users”等scim,(我想在HA中平衡一个IS)一个https地址端点),我有一个代理,我可以使用scim,但当我尝试获取wsdl wso2 esb时,只发送了一个日志:

  

INFO {org.apache.synapse.mediators.builtin.LogMediator} - 收件人:/ services / PRX_SC_IS_SERVICES / services / UserInformationRecoveryService?wsdl,    MessageID:urn:uuid:10516b34-8004-4c70-9d4c-61957e4d9147,Direction:request,Envelope:{org.apache.synapse.mediators.builtin.LogMediator}

我认为问题在于URL在代理名称之后使用服务,因为当我调用另一个URL时我没有问题。

我的代理配置:

<proxy xmlns="http://ws.apache.org/ns/synapse"
   name="PRX_SC_IS_SERVICES"
   transports="http"
   statistics="disable"
   trace="disable"
   startOnLoad="true">
<target>
    <inSequence>
        <property xmlns:ns="http://org.apache.synapse/xsd"
               name="Authorization"
               expression="fn:concat('Basic ', base64Encode('admin:admin'))"
               scope="transport"/>
        <send>
            <endpoint key="IS_EP_HTTPS"/>
        </send>
    </inSequence>
    <outSequence>
        <send/>
    </outSequence>
</target>
<description/>

1 个答案:

答案 0 :(得分:0)

使用WSO2,您无法执行通用代理,也无法在代理名称后使用“服务”一词。 执行此操作的简单方法是安装Nginx并使用它像代理反向一样使用以下内容:

    upstream https.is{
        server IP_IS01:9446;
        server IP_IS02:9446;
    }  

  server {
        listen       8443 ssl;
        server_name IP_HOST;

        ssl_certificate      ssl.crt;
        ssl_certificate_key  ssl.key;

        location / {
                proxy_pass              https://https.is/;
                proxy_set_header        Host   $http_host;
        }
    }

您可以做的另一件事是将ESB中的上下文服务(axis2.xml和carbon.xml)移到另一个上下文并部署两个重写上下文/服务和/ wso2 / scim的API,因为现在代理服务应该重定向到另一个上下文,例如/ services / UserAdmin到IS wsdl。 API示例:

                                                                                                                     

  <resource methods="POST" uri-template="/PRX*">
  <inSequence>
     <send>
        <endpoint>
           <address uri="http://HOST_ESB:PORT_ESB/newservicescontext/"></address>
        </endpoint>
     </send>
  </inSequence>
  <outSequence>
     <send></send>
  </outSequence>