SOAP エンベロープのない SOAP 要求である文字列として XML ドキュメントがあります。私は今、次のことをする必要があります:
- SOAP エンベロープでラップされた Web サービスにリクエストをポストする
- SOAP エンベロープをアンラップして応答を返す
実際の HTTP 接続は問題ありませんが、ラッピングとアンラッピングに本当に苦労しています。Java でこの XML 操作を行う方法を理解しようとしましたが、実際には理解できません。javax.xml
たとえば、パッケージを見てみましたが、ほとんどが非常に混乱していることがわかります。残念ながら、私は Java 1.5 に限定されており、外部ライブラリはありません。それ以外の場合は、おそらくいくつかの apache commons などを使用していたでしょう。
基本的に私が探しているのは、次のようなメソッドのペアです。
/* Wraps the xml in a standard soap envelope */
String wrap(String xml)
/* Removes soap envelope from the xml */
String unwrap(String xml)
注意しないとxmlヘッダーが混乱する可能性がありますが、私が推測する方法はのwrap
ように単純である可能性があります。soapStart + xml + soapEnd
しかし、実際に内容を抽出し、必要な名前空間宣言などを確実に取得する必要があるため、アンラップは私にはトリッキーすぎ<soapenv:Body>
ます。
私は何時間もここに座っていましたが、まだわかりません...うまくいけば、あなたの何人かはそうします:)