このエラーは、receiver 側が request 自体は受け取ったものの、期待する contract に結び付けられなかった時に出やすいです。
The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher.
WCF 系のサービスや、その背後で .NET / WCF 系 endpoint と通信している SAP 連携でよく見ます。
ありがちな原因
代表的なのは次です。
SOAPActionが欠けている、または空- binding に合っていない endpoint を叩いている
- SOAP version を取り違えている
- security / transport の前提がずれている
- WSDL の operation/action と実際の request が一致していない
Action '' が重要な理由
エラー内で Action '' と出ているなら、最初に見るべきは outgoing request に期待された SOAPAction が本当に入っているかです。SOAP 1.1 なら header、SOAP 1.2 なら application/soap+xml の action parameter を確認します。
SAP Community でも、このエラーの実態が「送るべき action が request に入っていない」ケースはかなり見られます。
最初に確認したいこと
- endpoint URL が正しいか
- SOAP version が合っているか
- outgoing
SOAPActionが本当に付いているか - WSDL binding が document/literal か、それ以外の癖があるか
- test と production で auth / transport 条件がずれていないか
なぜこれを下流へ配らない方がいいのか
この種の fault は、downstream team が何度も自力で考えるべきものではありません。
consumer ごとに binding mismatch や action header の有無をデバッグしている時点で、表向きは扱いやすい API を出していても、実態はまだ SOAP の複雑さを押し付けています。
managed な integration layer を置く意味は、こうした action mapping と request 生成を1か所に閉じ込められることです。