2016-06-22 15 views
0

WSO2 ESB Drupalコネクタを使用してノードデータ(Drupal Restサービスから)を取得することはできましたが、データを投稿する(ノードを作成する)と、残りのものを使用して応答200を表示しても失敗しますクライアント。 Drupal権限は、ノードコンテンツの読み取りと作成のための匿名権限で設定されています。wso2 esb drupalコネクタ

drupalアプリケーションとWSO2 ESBアプリケーションの両方がローカルマシンにあります。

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

データは残りのクライアントを介して投稿: { "responseType":」 JSON」、 "apiUrl": "http://10.102.6.223:8090/drupal/test1"、 "タイトル": "テスト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> 

この作業を行うためのあらゆる指針は非常に高く評価されています。ありがとう。

答えて

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": "[email protected]", 
"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