3

一旦在 carbon 配置文件上将 HideAdminServiceWSDLs 设置为 false,就可以发现 EventReceiverAdminService 服务端点。它公开了 deployEventReceiverConfiguration 方法。谁能提供一个关于如何在多租户环境中使用此服务的示例?我尝试调用该服务,但每次收到以下响应:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>soapenv:Server</faultcode>
         <faultstring>unknown</faultstring>
         <detail/>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope> 

并且 DAS 日志上没有有用的消息。

4

1 回答 1

1

您需要提供事件接收器的 XML 配置。我用 SOAP UI 尝试了以下操作,它可以工作。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adm="http://admin.receiver.event.carbon.wso2.org">
   <soapenv:Header/>
   <soapenv:Body>
      <adm:deployEventReceiverConfiguration>
         <!--Optional:-->
         <adm:eventReceiverConfigXml><![CDATA[<eventReceiver xmlns="http://wso2.org/carbon/eventreceiver" name="httpReceiver" statistics="disable" trace="disable">
   <from eventAdapterType="http">
      <property name="transports">all</property>
   </from>
   <mapping customMapping="disable" type="json" />
   <to streamName="org.wso2.event.sensor.stream" version="1.0.0" />
</eventReceiver>]]>

在多租户环境中,使用相应租户管理员的凭据进行基本身份验证。然后它将在正确的租户中部署事件接收器。部署DAS时会打印如下日志,

[2016-02-11 17:40:39,670] admin@test.com [1] [DAS] INFO {org.wso2.carbon.core.services.util.CarbonAuthenticationUtil} -  'admin@test.com [1]' logged in at [2016-02-11 17:40:39,670-0700]
[2016-02-11 17:40:39,674] admin@test.com [1] [DAS] INFO {org.wso2.carbon.event.receiver.core.internal.util.helper.EventReceiverConfigurationFileSystemInvoker} -  Event receiver configuration saved to the filesystem :httpReceiver.xml
[2016-02-11 17:40:39,675] admin@test.com [1] [DAS] INFO {org.wso2.carbon.event.input.adapter.core.internal.InputAdapterRuntime} -  Connecting receiver httpReceiver
[2016-02-11 17:40:39,676] admin@test.com [1] [DAS] INFO {org.wso2.carbon.event.stream.core.internal.EventJunction} -  Producer added to the junction. Stream:BAM_MESSAGE_TRACE:1.0.0
[2016-02-11 17:40:39,676] admin@test.com [1] [DAS] INFO {org.wso2.carbon.event.receiver.core.EventReceiverDeployer} -  Event Receiver configuration successfully deployed and in active state: httpReceiver
于 2016-02-12T00:39:12.170 回答