のみまくし日記

毎日が文化祭の前日、そんな環境っていいですよね。この日記は未来の自分へのメッセージです。

2004年04月28日 ()

SOAP::Lite / おたすけマンに感謝!

先週からずーっとなやんでいた、SOAPの問題が解決しました!

おたすけマンこと、ク社時代の先輩から、「Unix版の SOAP::Liteおかしげよ、Win版でためしてみたら?」というアドバイスをもらいました。

なにーと思って、試してみると。キター。うごきました!! Win版で試すなんておもいもしなかったですよ。激しく感謝です。

というわけで、僕が理解した範囲でメモっておきます。

準備

ActivePerlの場合はSOAP::LiteLWPは初めから入っています。

SSL通信をする場合は Perl 5.8 系の場合は Crypt::SSLeayが必要になります。ActiveSite には無いので、

 ppm install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd

DLL をインストールしろといわれるので、ダウンロード先は

 /Windows/Win32

を指定。

これで、Windows 上で https な SOAP を行う準備が整いました。

文字型

で、Win上でやってみたら、なにやらいままでとは違うパラメータがちがうとかなんとか、前向きなメッセージがでてきた。

パラメータ名はあってるな。

 use SOAP::Lite +trace => 'debug';

で、トレースしてみるとXML で string型 で渡さないとけないと行けない項目が、int型になってるっぽい。

どうも、SOAP::Lite は、数字のみだと int 型にしてしまうっぽい。

しょうがないので、

 code => '99999 ',

のように、後ろに半角スペース付けて強引に string型に変更。(ヲイヲイ)

キタ━━━━(゚∀゚)━━━━ッ!!

動きました!やった、先週からずーっと悩んでいたのが解決か!?

んで、サーバに持って行ったら、やっぱり動きませんでした。どうも教えてもらったとおりWSDL から動的に処理しているあたりがあやしげです。

これまた、教えてもらった通りstubmaker.pl つかってスタブを Windows 上で作っておいてそれを UNIX にもってったらうごきました。

 stubmaker.pl WSDL_URL

stubmaker.pl で作られた、モジュールを use するだけですね。(もちろんパラメータは渡しますが)簡単です。

これをつかえば、いちいちWSDLを使用しなくてもいいので、速度的にも早いのかな?(未検証)

その後

会社の同僚がちょと上手くいくヤツとの差分を調べてくれて、UNIX版でもパラメータを工夫しまくれば、スタブをWindowsで作成しなくても上手くいくことが分かりました。

思えば、昔 Amazon Web Serviceで遊んでみたときも WSDL つかってたけど、本来であれば、こんな煩雑なデータを定義して渡す必要はなかったんだなぁと思った。(ちょっと後で検証してみます)

バッドノウハウ?

どこが問題なのかおってないのであれだけど、SOAP::Lite 関係で上手くいかないときは Windows で一回ためしてみるのがよいのなかーとか思いました。

やっぱり、これってバッドノウハウ?

SEE ALSO

Perl posted by takefumi | この日記へリンク | コメント(0) | トラックバック(0)

この日記へのトラックバック

この日記へのコメント