wso2 esb drupal连接器

时间:2016-06-22 05:14:11

标签: drupal-7 wso2esb

我已经能够使用WSO2 ESB Drupal连接器检索节点数据(来自Drupal休息服务),但是在发布数据(创建节点)时,即使它使用其余客户端显示响应200,它也会失败。 Drupal权限已设置为具有读取和创建节点内容的匿名权限。

drupal应用程序和WSO2 ESB应用程序都在我的本地计算机上。

ESB URL 10.102.6.223:8280/services/drupal_createNode_jun21-333pm Drupal Rest API URL 10.102.6.223:8090/drupal/test1

通过其他客户发布的数据:     {     “的responseType”: “JSON”, “apiUrl”:“http://10.102.6.223:8090/drupal/test1”, “title”:“test title213pmv2”, “类型”:“文章”     }

WSO2 ESB代理服务详情:

<?xml version="1.0" encoding="UTF-8"?>
<proxy name="drupal_createNode_jun21-333pm" startOnLoad="true"
  trace="disable" transports="https http" xmlns="http://ws.apache.org/ns/synapse">
  <target>
    <inSequence onError="faultHandlerSeq">
      <sequence key="faultHandlerSeq"/>
      <property expression="json-eval($.responseType)"
        name="responseType" scope="default" type="STRING"/>
      <property expression="json-eval($.apiUrl)" name="apiUrl"
        scope="default" type="STRING"/>
      <property expression="json-eval($.title)" name="title"
        scope="default" type="STRING"/>
      <property expression="json-eval($.type)" name="type"
        scope="default" type="STRING"/>
      <drupal.init>
        <apiUrl>{$ctx:apiUrl}</apiUrl>
        <responseType>{$ctx:responseType}</responseType>
      </drupal.init>
      <drupal.createNode>
        <type>{$ctx:type}</type>
        <title>{$ctx:title}</title>
      </drupal.createNode>
      <respond/>
    </inSequence>
    <outSequence>
      <send/>
    </outSequence>
    <faultSequence/>
  </target>
</proxy>

非常感谢任何有关此工作的指示。感谢。

1 个答案:

答案 0 :(得分:0)

我认为你错过了nodeBody,请使用以下格式并尝试

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="drupal_createNode" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
 <target>
 <inSequence onError="faultHandlerSeq">
  <property name="responseType" expression="json-eval($.responseType)"/>
  <property name="apiUrl" expression="json-eval($.apiUrl)"/>
  <property name="userName" expression="json-eval($.userName)"/>
  <property name="password" expression="json-eval($.password)"/>
  <property name="title" expression="json-eval($.title)"/>
  <property name="nodeBody" expression="json-eval($.nodeBody)"/>
  <property name="customFields" expression="json-eval($.customFields)"/>
  <property name="comment" expression="json-eval($.comment)"/>
  <property name="type" expression="json-eval($.type)"/>
  <drupal.init>
     <responseType>{$ctx:responseType}</responseType>
     <apiUrl>{$ctx:apiUrl}</apiUrl>
     <userName>{$ctx:userName}</userName>
     <password>{$ctx:password}</password>
  </drupal.init>
  <drupal.createNode>
     <title>{$ctx:title}</title>
     <nodeBody>{$ctx:nodeBody}</nodeBody>
     <customFields>{$ctx:customFields}</customFields>
     <comment>{$ctx:comment}</comment>
     <type>{$ctx:type}</type>
  </drupal.createNode>
   <respond/>
 </inSequence>
  <outSequence>
   <send/>
  </outSequence>
 </target>

  

并使用以下格式的请求

{
"apiUrl": "http://172.22.217.40/restapi",
"userName": "samliyanage",
"password": "1qaz2wsx@",
"responseType": "json",
"title": "test title",
"nodeBody": {
    "und": [
        {
            "value": "bodyss textreee",
            "summary": "dffffffffffffff",
            "format": "filtered_html",
            "safe_value": "bodyss text",
            "safe_summary": "text"
        }
    ]
},
"customFields": {
    "field_des": "tiger tiger"
},
"comment": "testing",
"type": "article"
}

有关详细信息here