Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerWeb サービスコンシューマー用 Anypoint Connector (Web Service Consumer Connector) をトラブルシューティングするには、ワイヤーロギングの有効化、添付ファイルへのアクセスのトラブルシューティング、デザイン時の WSDL の問題のトラブルシューティング、一般的なエラーメッセージの解釈に関する情報について理解しておいてください。
Web Service Consumer Connector のトラブルシューティングを開始するには、Web サービスコンシューマーでトランスポート要求と応答を調べます。 基礎となる HTTP トランスポートを使用している場合、ワイヤーロギングを有効化して正確な HTTP メッセージ、トランスミッションヘッダー、応答状況を確認できます。
ワイヤーロギングを有効化する手順は、次のとおりです。
Anypoint Studio にアクセスし、[Package Explorer] ビューに移動します。
アプリケーションのプロジェクト名を開きます。
src/main/resources
パスフォルダーを開きます。
フォルダー内の log4j2.xml
ファイルを開きます。
次の行がすでに log4j2.xml
ファイル内にある場合は、そのコメントを解除して有効にします。それ以外の場合、次の行を追加します。
<AsyncLogger name="org.mule.service.http.impl.service.HttpMessageLogger" level="DEBUG" />
xml
変更を保存します。
Package Explorer でプロジェクト名をクリックし、[Run (実行)] > [Run As (別のユーザーとして実行)] > [Mule Application (Mule アプリケーション)] をクリックします。
[Console (コンソール)] ビューに移動し、ロガーの HTTP メッセージを読み取ります。
POST /essentials/delta HTTP/1.1 soapaction: Host: ilt.mulesoft-training.com User-Agent: AHC/1.0 Connection: keep-alive Accept: */* Content-Type: text/xml; charset=UTF-8 Transfer-Encoding: chunked b1 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns0:listAllFlights xmlns:ns0="http://soap.training.mulesoft.com/"/></soap:Body></soap:Envelope> DEBUG 2021-04-06 15:04:23,058 [[wsc-base].wsc-dispatcher.11 SelectorRunner] [processor: ; event: ] org.mule.service.http.impl.service.HttpMessageLogger.wsc-dispatcher: REQUESTER 0 DEBUG 2021-04-06 15:04:23,319 [[wsc-base].wsc-dispatcher.11 SelectorRunner] [processor: ; event: ] org.mule.service.http.impl.service.HttpMessageLogger.wsc-dispatcher: REQUESTER HTTP/1.1 200 Date: Tue, 06 Apr 2021 18:04:23 GMT Content-Type: text/xml; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive MULE_ENCODING: UTF-8 Strict-Transport-Security: max-age=31536000; includeSubdomains; X-Content-Type-Options: 1 X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block bfe <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:listAllFlightsResponse xmlns:ns2="http://soap.training.mulesoft.com/">...
plain-text
一部のサーバーは、MTOM (Message Transmission Optimization Mechanism) メッセージを送信することで要求に応答します。これらのメッセージではデータが各パートに分けられ、これによってさまざまな種類の内容データを同じ HTTP メッセージに含めることができます。
MTOM が個別のパートのバイナリデータの送信と、SOAP エンベロープ内の対応する項目からのそのパートの参照を担当します。 Web サービスコンシューマーユーザーは、MTOM 設定のみを使用してこれらのメッセージ (マルチパート) を操作します。
MTOM についての詳細は、次のドキュメントを参照してください。
バージョン 1.6.4 以降の Web Service Consumer Connector では、Web サービスコンシューマーのグローバル設定での MTOM 設定に関係なく、MTOM 応答も自動的に管理する要求メッセージ用に MTOM を設定できるようになっています。MTOM を使用した受信メッセージは、Web サービスコンシューマーのグローバル設定で MTOM が設定されているかどうかに関係なく、MTOM 対応として扱われます。
次の例は、MTOM が有効になった Web Service Consumer Connector のグローバル設定を示しています。
XML エディターでは、<wsc:config>
および mtomEnabled
の設定は次のように記述されます。
<wsc:config name="Web_Service_Consumer_Config" doc:name="Web Service Consumer Config">
<wsc:connection wsdlLocation="http://ilt.mulesoft-training.com/essentials/delta?wsdl" service="TicketServiceService" port="TicketServicePort" address="http://ilt.mulesoft-training.com/essentials/delta" mtomEnabled="true">
<wsc:web-service-security actor="http://schemas.xmlsoap.org/soap/actor/next" />
</wsc:connection>
</wsc:config>
xml
サーバー側のマルチパート設定に応じて、サーバーが一部のバイナリデータを Base64 エンコードされたテキスト項目または MIME メッセージで参照されるバイナリパートとして送信する場合もあります。
バイナリデータへのアクセスをトラブルシューティングする手順は、次のとおりです。
サーバーがバイナリデータを Base64 エンコードされたテキスト項目として送信する場合、メッセージのパートとしてこの項目にアクセスする必要があります。
Base64 のでコードは Web サービスコンシューマーによって自動的に実行されます。
サーバーがバイナリデータを参照されるバイナリパートとして送信する場合、添付ファイルとしてこの項目にアクセスする必要があります。
次の例は、Web サービスサーバーによって MTOM を使用して添付ファイルとして送信される画像を示しています。DataWeave を使用して画像にアクセスし、JSON に変換します。この場合、Base64 エンコーディングが必須です。
import * from dw::core::Strings
import dw::core::Binaries
output application/json
ns nam http://mynamespace.com
---
{
...
"image": Binaries::toBase64(payload.attachments[0]),
...
}
DataWeave
不正な WSDL の認識、取得、解析に関連したエラーがあると、次のような問題が発生することがあります。
DataSense によって WSDL で定義されたメッセージメタデータが正しく公開されない。
Web Service Consumer Connector の設定画面で、[Operations (操作)] 項目にコネクタが呼び出す Web サービス操作名が一切表示されない。
Web Service Consumer Connector のグローバル要素設定で、WSDL の場所が指定されている場合に [Port (ポート)] 項目と [Address (アドレス)] 項目が自動的に入力されない。
これらの問題を解決する手順は、次のとおりです。
お好みのオンラインまたはデスクトップのビューアーアプリケーションを使用して WSDL の整合性をチェックします。
設定中のすべての解析エラーがデザイン時に表示されるわけではないため、外部アプリケーションの実装はこれらのエラーの検出に役立ちます。
Studio で WSDL をアプリケーションの src/main/resources フォルダーのリソースとして追加しない場合は、WSDL をホストするサーバーへの正しい接続を確認してください。
場合によって、HTTP セキュリティレイヤーの HTTP サーバーにアクセスするために、OAuth 設定やユーザー/パスワード設定などのカスタム HTTP 設定を追加する必要があることもあります。「カスタム HTTP トランスポートの設定」を参照してください。
次に、一般的なスローメッセージとその解釈方法のリストを示します。
WSC:SOAP_FAULT
Error matching the SOAP response with the format provided by the WSDL. (SOAP 応答を WSDL によって指定された形式にマッチングするときにエラーが発生しました。)
Every CXF SOAP fault error is wrapped in a `WSC:SOAP_FAULT`. (すべての CXF SOAP 失敗エラーは `WSC:SOAP_FAULT` でラップされます。)
WSC:BAD_REQUST
The Web Service Consumer Connector operation does not exist in the WSDL. (Web サービスコンシューマーコネクタ操作が WSDL に存在していません。)
The request body is not a valid XML. (リクエストボディが有効な XML ではありません。)
WSC:INVALID_WSDL
The WSDL is poorly formatted. (WSDL の形式が正しくありません。)