メッセージ変換の応答フローの単体テスト中に直面する興味深い問題に遭遇しました。このフローの結果は、(XML から非 XML への) バイナリー出力であり、キューに入れられます。私たちが直面している問題は、このバイナリ出力メッセージの長さが非 xml データの長さと一致しないことです。これは、MFL フォーマット テスター ツールからの予想される結果として保存されます。私たちの推測では、OSB がこのメッセージに何らかのエンコーディングを内部的に適用していますが、これは一見、プロキシ/ビジネス サービスに存在する UTF-8 です。そのため、expected のエンコーディングを UTF-8 に変更し、テスト ケースは成功しました。しかし、綿密な調査の結果、UTF-8 はそれ自体の長所により、すべてのデータを正しく表現していないことがわかりました。データ損失が発生した場所はどこでも「?」で表されます。'記号。
また、その間に MQ があり、独自のエンコーディングを持つ可能性がありますが、現時点では除外できません。
これには 2 つの解決策が考えられます。 1. エンコーディングの問題を回避するために、期待値と取得値の両方を Byte[] に変換することで比較を実装できます。しかし、出力で正確なメッセージ長を取得することはできません。2. 期待される結果と取得された結果の両方を UTF-8 以外の一般的なエンコード形式にエンコードできますが、どちらが正しいかわからないため、比較を行います。
アイデアギャング?