2009-07-27 15 views
0

Webサービスのクライアントをsoap4rに設定しましたが、かなりうまく機能しています。あるデータベースから別のデータベースにデータを送信するために使用しています(それについて質問するのは面倒ではありません...最適ではないことは分かっていますが)。マッピングが正しいとは必ずしも言えません。特定のレコードが生成するXMLWebサービスを呼び出さずにsoap4rでXMLを生成しますか?

もちろん、これは可能です。$DEBUGに設定すると、soap4rはXML経由の素晴らしいダンプを提供します。あなたはそれを送信したい "デバイス"(ファイル)を設定することさえできます。

しかし、実際にWebサービスを呼び出すことなく生成するXMLを取得したいと考えています。

これを行う方法はありますか?グリーティングをすると、私はobj2soapのようなさまざまな方法を見つけましたが、それらのどれも私が望むものではないようです。

答えて

1

間接的な回答:handsoapを参照してください。それは速く、もっとRubyのようにしようとします。ビルダースタイルのXML生成を使用しますが、すべてを自分で生成する必要があります。クリーンな方法でクライアントを書くツールボックスのようなものです。このようにして、何が生成されたかを知ることができます(簡単に検査できます)。

別のオプションは、$ DEBUGを設定し、後でそれを復元することです:

$REMEMBER_DEBUG_STATE = $DEBUG 
$DEBUG = true 
# call soap (and have your XML generated) 
$DEBUG = $REMEMBER_DEBUG_STATE 

これは、このような素敵な機能を抽出することができます

def with_debug_output 
    remember = $DEBUG 
    $DEBUG = true 
    yield if block_given? 
    $DEBUG = remember 
end 

し、それを使用します。

with_debug_output do 
    # call soap 
end 
+0

私は馬の中流を変えることに興味がないので、soap4rに固執する必要があります。 私は$ DEBUGについて知っていますが、私はサービスに電話したくありません。私は生成されたXMLを取得したいだけです。 –

関連する問題