Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。
Studio でコネクタを追加および設定する手順は、次のとおりです。
「アプリケーションログの表示」で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。
Studio で初めてコネクタを設定する場合は、「Anypoint Studio を使用したコネクタの設定」を参照してください。このトピックを読んだ後に、コネクタ項目に関する追加情報が必要な場合は、「Web Service Consumer Connector リファレンス」を参照してください。
Mule プロジェクトを作成する
Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。
-
Studio で、[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] を選択します。
-
Mule プロジェクトの名前を入力して、[Finish (完了)] をクリックします。
コネクタを Mule プロジェクトに追加する
Web Service Consumer Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの pom.xml ファイルに必須の連動関係を追加します。
-
[Mule Palette (Mule パレット)] ビューで、[(X) Search in Exchange ((X) Exchange 内を検索)] をクリックします。
-
[Add Dependencies to Project (連動関係をプロジェクトに追加)] で、検索項目に「
web service consumer」と入力します。 -
[Available modules (使用可能なモジュール)] で [Web Service Consumer (Web サービスコンシューマー)] をクリックします。
-
[Add (追加)] をクリックします。
-
[Finish (完了)] をクリックします。
Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。
ソースの設定
入力元は、指定された条件が満たされたときにフローを開始します。
たとえば、HTTP リスナーを設定する手順は、次のとおりです。
-
[Mule Palette (Mule パレット)] ビューで、[HTTP] > [Listener (リスナー)] を選択します。
-
[Listener (リスナー)] を Studio キャンバスにドラッグします。
-
[Listener (リスナー)] 設定画面で、必要に応じて [Display Name (表示名)] 項目の値を変更します。
-
[Path (パス)] 項目の値を指定します。
-
[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、アプリケーション内のすべての
HTTP Listener インスタンスで使用できるグローバル要素を設定します。 -
[General (一般)] タブで、接続情報を指定します。
-
[TLS] タブで、必要に応じて TLS 情報を指定します。
-
[Advanced (詳細)] タブで、必要に応じて再接続戦略を含む再接続情報を指定します。
-
[Test Connection (接続をテスト)] をクリックして、Mule が特定のサーバーに接続できることを確認します。
-
[OK] をクリックします。
フローにコネクタの操作を追加する
フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。
consume 操作を Web Service Consumer Connector に追加するには、次の手順に従います。
-
[Mule Palette (Mule パレット)] ビューで [Web Service Consumer (Web サービスコンシューマー)] を選択し、consume 操作を選択します。
-
その操作を Studio キャンバスの入力元の右にドラッグします。
コネクタのグローバル要素を設定する
コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定することをお勧めします。SOAP Web サービス操作をコンシュームするには、コンシュームするサービスを参照する設定を作成する必要があります。
Web Service Consumer Connector のグローバル要素を設定する手順は、次のとおりです。
-
Studio キャンバスでコネクタの名前を選択します。
-
[General (一般)] タブの [Basic Settings (基本設定)] セクションで、[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックし、グローバル要素設定項目にアクセスします。
-
[General (一般)] タブの [Connection (接続)] セクションで、次のパラメーターを設定します。
-
WSDL location (WSDL の場所)
リモートまたはローカル WSDL ファイル URL。 -
Service (サービス)
サービス名。 -
Port (ポート)
ポート名。 -
Address (住所)
Service パラメーターと Port パラメーターで指定されていない場合に使用する、要求をディスパッチする先の Web サーバーのアドレス。
-
WSDL location パラメーター、Service パラメーター、および Port パラメーターは、有効な設定には必須です。
次の例は、航空会社ごとにフライトのリストを取得するようにグローバル要素を設定する方法を示しています。
[Configuration XML (設定 XML)] タブでは、XML は次のように記述されます。
<wsc:config name="wsc">
<wsc:connection
wsdlLocation="http://ilt.mulesoft-training.com/essentials/delta?wsdl"
service="TicketServiceService"
port="TicketServicePort"/>
</wsc:config>
consume 操作の設定
Web Service Consumer Connector のグローバル要素を設定したら、operation、message (body、headers、attachments) などの consume 操作パラメーターを設定します。また、consume 操作の出力や、メッセージのディスパッチに使用するメタデータ属性についても説明します。
パラメーター
consume 操作には 2 つの主要なパラメーターがあります。
-
Operation
Web サービスのどの SOAP 操作を呼び出すかを定義します。デザインフェーズでは、このパラメーターは consume 操作の入力と出力のタイプを定義します。タイプは選択する操作によって異なります。 -
Message
3 つの省略可能なパラメーターから構成される SOAP:ENVELOP の表現です。-
Body
SOAP メッセージに含める XML 本文。必要なパラメーターをすべて含みます。パラメーターが必要でない場合は null -
Headers
SOAP メッセージに含める XML ヘッダー -
Attachments
SOAP 要求に含める添付ファイル
-
これらの consume 操作パラメーターを設定する手順は次のとおりです。
-
Studio キャンバスでコネクタの名前を選択します。
-
consume 操作の [General (一般)] セクションで operation を定義し、[Message (メッセージ)] セクションで body、headers、attachments の各パラメーターを定義します。
[Configuration XML (設定 XML)] タブの consume 操作の基本設定は次のようになります。
<wsc:consume config-ref="config" operation="addClients">
<wsc:message>
<wsc:body>#[payload]</wsc:body>
</wsc:message>
</wsc:consume>
body パラメーター
body パラメーターは SOAP メッセージの主要部分です。このパラメーターは、埋め込まれた DataWeave スクリプトを受け入れるので、メッセージへの副作用がなく、または要求を作成するために複数のコンポーネントを使用する必要がなく、XML 要求を作成できることが想定されます。このパラメーターには次のような特徴があります。
-
デフォルト値は
#[payload] で、受信ペイロードはサービスへの送信準備が整った XML エンティティであることが予期されます。 -
body が有効な XML でない場合、または何らかの理由で要求を作成できない場合、
WSC:BAD_REQUEST エラーが発生します。 -
body で本文を提供しないと、Web Service Consumer Connector は本文を生成しようとしますが、これは本文に XML エンティティが想定されない場合にのみ機能します。
-
一部の Web サービスでは、ドキュメントが XML であることを識別するために、バージョンとエンコードに関する情報を含む XML Prolog タグをエンベロープの body XML コンテンツに追加する必要があります。
次の例は、body パラメーター内で DataWeave 式を使用して、XML Prolog オプションを有効にすることで強制的に Web Service Consumer Connector にペイロードをディスパッチさせる方法を示しています。
-
Studio キャンバスでコネクタの名前を選択します。
-
[General (一般)] タブの body パラメーター項目に DataWeave 式を追加します。
-
[Advanced (詳細)] タブの [Message Customization (メッセージのカスタマイズ)] セクションで、[Force XML Prolog into body (body に XML Prolog を適用)] を次のように有効化します。
[Configuration XML (設定 XML)] タブでは、XML は次のように記述されます。
<wsc:consume config-ref="config" operation="addClients">
<wsc:message>
<wsc:body>
#[
%dw 2.0
output application/xml
ns con http://service.soap.clients.namespace/
---
con#clients: {
client: {
name: "admin1",
lastname: "textpassword1"
},
client: {
name: "admin2",
lastname: "textpassword2"
}
}]
</wsc:body>
</wsc:message>
<wsc:message-customizations forceXMLProlog="true" />
</wsc:consume>
headers パラメーター
headers パラメーターには、SOAP メッセージに関するアプリケーション特有の情報 (認証、支払いなど) が含まれます。このパラメーターは、埋め込まれた DataWeave スクリプトを値として受け入れる XML エンティティです。
次の XML 例は、headers パラメーター内の DataWeave 式を示しています。
<wsc:consume config-ref="config" operation="addClients">
<wsc:message>
<wsc:body>#[payload]</wsc:body>
<wsc:headers>
#[
%dw 2.0
output application/xml
ns con http://service.soap.clients.namespace/
---
"headers": {
con#user: "admin",
con#pass: "textpassword"
}]
</wsc:header>
</wsc:message>
</wsc:consume>
DataWeave スクリプト内では、ルートが "headers" である必要があります。そうでない場合は、アプリケーションの実行中に次のエラーが返されます: Invalid input headers XML: It must be an xml with the root tag named \'headers\'。
attachments パラメーター
attachments パラメーターを使用して、SOAP メッセージに添付ファイルをバインドすることができます。SOAP を使用するトランスポート用の添付ファイルを作成するには、DataWeave スクリプトを宣言します。このスクリプトの各エントリは添付ファイルを表し、エンティティ値で添付ファイルのコンテンツを指定します。次に例を示します。
次の XML 例では、attachments パラメーター内で DataWeave 式を使用して、clientsJson という新しい添付ファイルを宣言しています。添付ファイルの値は jsonFile 変数に保存されます。この変数は、file:read 操作から設定することができます。
<wsc:consume config-ref="config" operation="addClients">
<wsc:message>
<wsc:body>#[payload]</wsc:body>
<wsc:attachments>
#[{ clientsJson: vars.jsonFile } ]
</wsc:attachments>
</wsc:message>
</wsc:consume>
出力
consume 操作の出力は、Message パラメーターで使用するのと同じ要素を含む受信 SOAP メッセージを表し、各部分にアクセスすることができます。
下記の XML 例は、以下を保存します。
-
本文のコンテンツを
soap.body 変数に保存 -
auth というヘッダーのコンテンツを soap.header.auth 変数に保存 -
json という添付ファイルのコンテンツを soap.attachment.json 変数に保存
<flow name="output">
<wsc:consume config-ref="config" operation="addClients">
<wsc:message>
<wsc:body>#[payload]</wsc:body>
</wsc:message>
</wsc:consume>
<set-variable name="soap.body" value="#[payload.body]">
<set-variable name="soap.header.auth" value="#[payload.headers.auth]">
<set-variable name="soap.attachment.json" value="#[payload.attachments.json]">
</flow>
アプリケーションログの表示
問題を確認するため、アプリケーションログを次の方法で表示できます。
-
アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。
-
コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。
アプリケーションのログファイル (log4j2.xml) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 MULE_HOME/logs/<app-name>.log でアプリケーションログを表示することもできます。
次のステップ
グローバル要素と接続情報を設定したら、コネクタの他の項目を設定します。「追加設定情報」で、詳細な設定手順を参照してください。