[kansaipm] SOAP::Lite で encodingStyle を指定する方法は?
mishima at momo.so-net.ne.jp
mishima at momo.so-net.ne.jp
Fri Jan 3 19:10:49 CST 2003
三嶋@難波です。
From: mishima at momo.so-net.ne.jp
Subject: Re: [kansaipm] SOAP::Lite で encodingStyle を指定する方法は?
Date: Sat, 04 Jan 2003 09:50:59 +0900 (LMT)
> すごいですね。うまく動きました。
と書きましたが、実は途中で落ちてました。
端末画面に表示された結果をよくよく見ると、
返された結果を解釈できずに落ちていたようです。
---------------- <snip> ----------------
Unrecognized/unsupported value of encodingStyle attribute 'http://xml.apache.org/xml-soap/literalxml'
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope ...>
<SOAP-ENV:Body>
<ns1:getAllListingsResponse ...>
<return>
...ここに、返されたXMLの内容がどばーっと...
</return>
</ns1:getAllListingsResponse ...>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
at /cygdrive/d/home/mishima/Perl/testsoap.pl line 4
---------------- </snip> ----------------
最初、期待した XML が画面にどばーっと表示されたので喜んだのですが、
トレースモードの設定と、結果を print する行をコメントアウトしても、
返されたXMLが表示されちゃう (^^; ので、気が付きました。
ちゃんとサポートしてくれるように、作者にお願いしないとだめですかね。
パッチを作って送ってあげられたら良いのですが...。
---------------- <snip> ----------------
#!/usr/bin/perl -w
use strict;
use SOAP::Lite; # +trace => qw(debug);
my $result = SOAP::Lite
->serializer(MySerializer->new_literal)
->uri('urn:AddressFetcher')
->proxy('http://localhost:8080/soap/servlet/rpcrouter')
->getAllListings();
# print $result->result;
BEGIN {
package MySerializer; @MySerializer::ISA = 'SOAP::Serializer';
my $litencurl = "http://xml.apache.org/xml-soap/literalxml";
sub new_literal {
my $self = shift->SUPER::new(@_);
$self->{_attr}{"{$SOAP::Constants::NS_ENV}encodingStyle"} = $litencurl;
$self->{_namespaces}{$litencurl} = $SOAP::Constants::PREFIX_ENC;
$self;
}
}
---------------- </snip> ----------------
More information about the Kansai-pm
mailing list