I am trying to setup a SOAP server based on an existing
webserver/application server infrastructure. SOAP::Lite as a server
seems to insist on using its on transport mechanisms. Is there some
way to provide it with the XML message manually and have it simply
take care of the method invocation.
We do not want to use the SOAP mod perl transport since we do not
want to run any business logic on our webservers.
Here is our scenario:
We have an apache front end that will be accepting SOAP requests.
A Perl handler will take the SOAP XML documents it receives and pass
them via a proprietary interface to own in-house application server.
This application server will ideally instantiate a SOAP::Lite object
using the passed XML message. It will then trigger any
methods/classes as per usual.
My 2 issues are
1) Making sure all the right information is collected on the apache
end. So far I have $r->read() the POSTED content, ie the XML and
suspect the various additional http headers are not required unless
we want to compress the data.
2) Instantiating a server SOAP::Lite object within an _existing_
server framework by providing it with an XML document. This bit I
cant seem to fathom since all examples presume use of the bundled
Transport mechanisms.
This is the sort of thing I have been trying ...
$xml is the xml message received from the client
my $s = new SOAP::Server;
$s->request( HTTP::Request->new($xml) );
$s->dispatch_to('/my/modules/dir/');
$s->handle;
This doesnt work since SOAP::Server doesnt know what ->request()
method is. But it should explain what I'm trying to do.
Hmm, it seems to me the quickest way (Provided you don't want to go with
mod_perl) is to go with the CGI transport method, then you can simply invoke
your 'service' as a cgi through your existing webserver, and soap will
handle the soap request and send the proper response back to the webserver
(Who is free to pass it back to the client :)
-----Original Message-----
From: crazyfewl2002 [mailto:tom@...]
Sent: Tuesday, October 01, 2002 8:42 AM
To: soaplite@yahoogroups.com
Subject: [soaplite] How to integrate SOAP::Lite into a custom server
I am trying to setup a SOAP server based on an existing
webserver/application server infrastructure. SOAP::Lite as a server
seems to insist on using its on transport mechanisms. Is there some
way to provide it with the XML message manually and have it simply
take care of the method invocation.
We do not want to use the SOAP mod perl transport since we do not
want to run any business logic on our webservers.
Here is our scenario:
We have an apache front end that will be accepting SOAP requests.
A Perl handler will take the SOAP XML documents it receives and pass
them via a proprietary interface to own in-house application server.
This application server will ideally instantiate a SOAP::Lite object
using the passed XML message. It will then trigger any
methods/classes as per usual.
My 2 issues are
1) Making sure all the right information is collected on the apache
end. So far I have $r->read() the POSTED content, ie the XML and
suspect the various additional http headers are not required unless
we want to compress the data.
2) Instantiating a server SOAP::Lite object within an _existing_
server framework by providing it with an XML document. This bit I
cant seem to fathom since all examples presume use of the bundled
Transport mechanisms.
This is the sort of thing I have been trying ...
$xml is the xml message received from the client
my $s = new SOAP::Server;
$s->request( HTTP::Request->new($xml) );
$s->dispatch_to('/my/modules/dir/');
$s->handle;
This doesnt work since SOAP::Server doesnt know what ->request()
method is. But it should explain what I'm trying to do.
Any suggestions/comments appreciated.
Many thanks,
Tom
To unsubscribe from this group, send an email to:
soaplite-unsubscribe@yahoogroups.com
I have discovered after much digging that the following works rather
nicely...
use SOAP::Lite;
my $server = new SOAP::Server;
$server->dispatch_to('/my/modules/');
my $response = $server->handle( $xml );
Just got to figure out how to format the headers correctly in my
response and it should work nicely.
Shame this isnt documented. The above approach means I can now run
the SOAP Handler in my existing multiprocess preforking server and
away from apache.
--- In soaplite@y..., Keanan Smith <KSmith@n...> wrote:
> Hmm, it seems to me the quickest way (Provided you don't want to go
with
> mod_perl) is to go with the CGI transport method, then you can
simply invoke
> your 'service' as a cgi through your existing webserver, and soap
will
> handle the soap request and send the proper response back to the
webserver
> (Who is free to pass it back to the client :)
>
> -----Original Message-----
> From: crazyfewl2002 [mailto:tom@a...]
> Sent: Tuesday, October 01, 2002 8:42 AM
> To: soaplite@y...
> Subject: [soaplite] How to integrate SOAP::Lite into a custom server
>
>
> I am trying to setup a SOAP server based on an existing
> webserver/application server infrastructure. SOAP::Lite as a server
> seems to insist on using its on transport mechanisms. Is there some
> way to provide it with the XML message manually and have it simply
> take care of the method invocation.
>
> We do not want to use the SOAP mod perl transport since we do not
> want to run any business logic on our webservers.
>
> Here is our scenario:
>
> We have an apache front end that will be accepting SOAP requests.
> A Perl handler will take the SOAP XML documents it receives and
pass
> them via a proprietary interface to own in-house application
server.
>
> This application server will ideally instantiate a SOAP::Lite
object
> using the passed XML message. It will then trigger any
> methods/classes as per usual.
>
> My 2 issues are
> 1) Making sure all the right information is collected on the
apache
> end. So far I have $r->read() the POSTED content, ie the XML and
> suspect the various additional http headers are not required unless
> we want to compress the data.
>
> 2) Instantiating a server SOAP::Lite object within an _existing_
> server framework by providing it with an XML document. This bit I
> cant seem to fathom since all examples presume use of the bundled
> Transport mechanisms.
>
> This is the sort of thing I have been trying ...
>
> $xml is the xml message received from the client
>
> my $s = new SOAP::Server;
> $s->request( HTTP::Request->new($xml) );
> $s->dispatch_to('/my/modules/dir/');
> $s->handle;
>
> This doesnt work since SOAP::Server doesnt know what ->request()
> method is. But it should explain what I'm trying to do.
>
> Any suggestions/comments appreciated.
>
> Many thanks,
> Tom
>
>
>
> To unsubscribe from this group, send an email to:
> soaplite-unsubscribe@y...
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/