[kansaipm] SOAP::Lite で encodingStyle を指定する方法は?
mishima at momo.so-net.ne.jp
mishima at momo.so-net.ne.jp
Fri Jan 3 18:50:59 CST 2003
三嶋@難波です。
中島さん、ありがとうございます。
すごいですね。うまく動きました。
但し、そのままだと、
SOAPAction: "urn:AddressFetcher#getAllListings"
となってほしいヘッダが、なぜか
SOAPAction: "#getAllListings"
となってしまい、サーバにハネられました。
試しに、
「->serializer(MySerializer->new_literal)」の行を、
「->uri('urn:AddressFetcher')」の前に置くと直りました。
なんか怪しいなあ...。(^^;
どういう理屈でそうなるのか、よくわかりません。
ソースを解読してみます。
ありがとうございました。
From: Yasushi Nakajima <sey at jkc.co.jp>
Subject: Re: [kansaipm] SOAP::Lite で encodingStyle を指定する方法は?
Date: Sat, 04 Jan 2003 02:16:51 +0900
> なんだかちょっと無理矢理な感じもしますが、こんなんでどうでしょう?
>
> #!/usr/bin/perl -w
> use strict;
> use SOAP::Lite +trace => qw(debug);
> my $result = SOAP::Lite
> ->uri('urn:AddressFetcher')
> ->proxy('http://localhost:8080/soap/servlet/rpcrouter')
> ->serializer(MySerializer->new_literal)
> ->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;
> }
> }
>
>
> 中島 靖
>
More information about the Kansai-pm
mailing list