Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^2: SOAP Server and XML

by Anonymous Monk
on Nov 28, 2007 at 02:06 UTC ( #653449=note: print w/ replies, xml ) Need Help??


in reply to Re: SOAP Server and XML
in thread SOAP Server and XML

I've figured out how to output raw XML into the SOAP envelope:

use strict; use SOAP::Lite + "trace"; use SOAP::Transport::HTTP; use Data::Dumper; use XML::Simple; my $serverinfo = { version => ["0.1.dev"], validTypes => [ filetype => "txt", filetype => "html", ], statistics => { documentsProcessed => [0], }, }; sub FileQueue::getServerInfo { return SOAP::Data->type( 'xml' => XML::Simple->new(RootName => 'info')->XMLout($ser +verinfo) ) ; } my $daemon = SOAP::Transport::HTTP::Daemon ->new (LocalPort => 88) ->dispatch_to('FileQueue') ; print "Contact to SOAP server at ", $daemon->url, "\n"; $daemon->handle;
Using the same client as before:
use strict; use Data::Dumper; use SOAP::Lite + "trace"; my $soap = SOAP::Lite -> uri('http://www.perlmonks.org/FileQueue') -> proxy('http://localhost:88') ; $soap->readable(1); print $soap->getServerInfo()->result;
It produces the following SOAP response:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instanc +e" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:S +OAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http:/ +/www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xm +lsoap.org/soap/encoding/"> <SOAP-ENV:Body> <namesp1:getServerInfoResponse xmlns:namesp1="http://www.perlmonks +.org/FileQueue"> <info> <statistics> <documentsProcessed>0</documentsProcessed> </statistics> <validTypes> <filetype>html</filetype> <filetype>txt</filetype> </validTypes> <version>0.1.dev</version> </info> </namesp1:getServerInfoResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
This is closer to the real SOAP server response:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instanc +e" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:S +OAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http:/ +/www.w3.org/1999/XMLSchema" xmlns:pmq="http://www.perlmonks.org/FileQ +ueue"> <SOAP-ENV:Body> <pmq:getServerInfoResponse> <info> <version>0.1.dev</version> <statistics> <documentsProcessed>0</documentsProcessed> </statistics> <validTypes> <filetype>txt</filetype> <filetype>html</filetype> </validTypes> </info> </pmq:getServerInfoResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
I am still trying to figure out how to get rid of the xmlns:namesp1="http://www.perlmonk.org/FileQueue" and the envelope headers.


Comment on Re^2: SOAP Server and XML
Select or Download Code
Replies are listed 'Best First'.
Re^3: SOAP Server and XML
by rppowell (Novice) on Nov 28, 2007 at 02:18 UTC
    Ugh, the message was posted when I wasn't logged in.
    -rppowell
      It's kind pointless to use SOAP::Lite if you're going to inject raw XML :-)

      As I said, I don't have enough experience writing SOAP::Lite-based services with that level of control over serialisation, but I'd be quite sure it's possible.

      -David

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://653449]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (6)
As of 2015-07-30 04:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (270 votes), past polls