Skip to search.

Breaking News Visit Yahoo! News for the latest.

×Close this window

soaplite · SOAP::Lite for Perl (soaplite.com)

The Yahoo! Groups Product Blog

Check it out!

Group Information

  • Members: 1205
  • Category: Protocols
  • Founded: Jan 28, 2001
  • Language: English
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Message search is now enhanced, find messages faster. Take it for a spin.

Messages

Advanced
Messages Help
Messages 6223 - 6252 of 6629   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#6223 From: "lormidorido" <ragnar@...>
Date: Sat Sep 6, 2008 12:17 am
Subject: Apache::SOAP and returning MIME attachments
lormidorido
Send Email Send Email
 
Hi Paul and others on the list,

I am sorry to bother you but having now been struggling for days with
getting my SOAP::Lite server installation to return MIME attachment I
see no other alternative then to resort to the mailing list.

My problem is that I cannot understand how to specify to the
Apache::SOAP server instance to use the package format
SOAP::Lite::Packager::MIME.

Basically, I want to know how to setup the equivalence of the
following code (that shows how to use attachments within the context
of a CGI script):

#!/usr/bin/perl -w
   use SOAP::Transport::HTTP;
   use MIME::Entity;
   SOAP::Transport::HTTP::CGI
     ->packager(SOAP::Packager::MIME->new)
     ->dispatch_with({'urn:Majordojo:TemperatureService'
=> 'TemperatureService'})
     ->handle;

   BEGIN {
     package TemperatureService;
     use vars qw(@ISA);
     @ISA = qw(Exporter SOAP::Server::Parameters);
     use SOAP::Lite;
     sub c2f {
       my $self = shift;
       my $envelope = pop;
       my $temp = $envelope->dataof("//c2f/temperature");
       use MIME::Entity;
       my $ent = build MIME::Entity
         Type        => "text/plain",
         Path        => "printenv",
         Filename    => "printenv",
         Disposition => "attachment";
       # read
attachments

       foreach my $part (@{$envelope->parts}) {
         print STDERR "soaplite.cgi: attachment found! (".ref($part).")
\n";
         print STDERR "soaplite.cgi: contents => ".$part-
>stringify."\n";
       }
       # send
attachments

       return SOAP::Data->name('convertedTemp' => (((9/5)*($temp-
>value)) + 32)),
         $ent;
     }
   }

… within the context of using attachments with a SOAP::Lite setup
using Apache::SOAP.

I use location bases access in my httpd.conf file:
<Location /ides_soap>
     SetHandler perl-script
     PerlHandler Apache::SOAP
     PerlSetVar
dispatch_to "IDES::new_matter,IDES::get_updated_matters,IDES::update_m
atter,IDES::get_matter_status"
     PerlSetVar options "compress_threshold => 10000"

</Location>

Is it here that I somehow specify to Apache::SOAP to use the package
format SOAP::Lite::Packager::MIME?

Any help would be highly appreciated.

Regards,
Ragnar

#6224 From: rahed <raherh@...>
Date: Sat Sep 6, 2008 11:57 am
Subject: Re: nmake test freezing during SOAP Lite install
raherh
Send Email Send Email
 
On Fri, Sep 5, 2008 at 6:01 PM, Bryan <rdsxfan74@...> wrote:
> I tried to reinstall and skipped the 'nmake test' step and went directly to
> 'nmake install'.  It appeared to install correctly, but when I open the Perl
> Package Manager, SOAP Lite doesn't show up as being an installed module.

When I exclude CGI.t, all tests are successful and the module works
ok. Though I don't use CGI part and compile with dmake.

#6225 From: "bohdan.linda" <bohdan.linda@...>
Date: Tue Sep 9, 2008 3:55 pm
Subject: Complex data structures
bohdan.linda
Send Email Send Email
 
Hello,

From a soap call I am returning header and data. Header is constructed
as:

$header = SOAP::Header->name(
             "status"=>\SOAP::Header->value(
               SOAP::Header->name("code" => 0),
               SOAP::Header->name("msg" => "Ok")
             )
);

Then there is a data part:

         $data =  SOAP::Data->name(
             "status"=>\SOAP::Data->value(
                 SOAP::Data->name("code" => 0),
                 SOAP::Data->name("msg" => "Ok")
             )
         );

Both will form perfect XML on HTTP transport, but on client via:

$soap->header i get

$VAR1 = {
           'status' => {
                       'msg' => 'Ok',
                       'code' => '0'
                     }
         };

but $soap->result will give me:

$VAR1 = {
           'msg' => 'Ok',
           'code' => '0'
         };

why there is the difference. How do I achieve having "status" in
result of data?

Thank you,
Bohdan

#6226 From: Thomas J Pinkl <thomas.pinkl@...>
Date: Tue Sep 9, 2008 8:59 pm
Subject: Re: SSL and SOAP server (again)
tpinkl
Send Email Send Email
 
On Tue, Sep 09, 2008 at 05:42:37PM -0000, fistan11 wrote:
> Thomas, can you put any example here? Multithreaded SSL standalone
> server could be MUCH MORE expressive than thousands of doc lines.
> Thank you!

I cannot post the code, as it is part of a commercial product that
is sold by my employer.  In pseudo code, it would look like so
(untested):

use IO::Socket;
use HTTP::Daemon::SSL;
use SOAP::Transport::HTTP;
...

	 # set up HTTP and SSL options
	 my %https_opts = ();
	 $https_opts{LocalPort}       = 443;
	 $https_opts{Proto}           = "tcp";
	 $https_opts{Type}            = SOCK_STREAM;
	 $https_opts{Listen}          = SOMAXCONN;
	 $https_opts{ReuseAddr}       = 1;
	 $https_opts{Timeout}         = 300;
	 $https_opts{SSL_version}     = 'SSLv2/3';
	 $https_opts{SSL_cipher_list} = 'ALL:!LOW:!EXP';
	 $https_opts{SSL_use_cert}    = 1;
	 $https_opts{SSL_key_file}    = "server.key";
	 $https_opts{SSL_cert_file}   = "server.crt";
	 $https_opts{SSL_ca_file}     = "ca-bundle.crt";
	 $https_opts{SSL_ca_path}     = "/path/to/CA/certs";
	 $https_opts{SSL_verify_mode} = 0x01|0x02;
	 $https_opts{SSL_check_crl}   = 0;
	 ...

sub https_daemon {
	 # become a daemon (optional)
	 &make_me_a_daemon();

	 # start HTTPS listener
	 my $server = HTTP::Daemon::SSL->new( %https_opts );

	 # accept loop
	 while (1) {
		 # wait for a client connection
		 my $client = $server->accept();
		 next if (! $client);

		 # start a child process to handle the connection
		 &start_child($server,$client);

		  # parent process closes the connected socket
		 $client->close();
	 }
}

sub start_child {
	 my $server = shift;
	 my $client = shift;

	 my $pid = fork();
	 return if (! defined $pid);

	 if ($pid > 0) {
		 # parent process
		 return;
	 } else {
		 # child process
		 $server->close();

		 # handle the HTTP connection and exit
		 &handle_http_connection($client);
		 $client->close();
		 exit(0);
	 }
}

sub handle_http_connection {
	 my $client = shift;

	 my $soap = new SOAP::Transport::HTTP::Server;
	 $soap->dispatch_to( $SOME_LIST_OF_MODULES );

	 while (1) {
		 # read HTTP request
		 my $req = $client->get_request();
		 last if (! $req);

		 # handle HTTP request and generate HTTP response
		 my $resp = &handle_http_request( $req, $soap );

		 # send HTTP response
		 if ($resp) {
			 $client->send_response( $resp );
		 } else {
			 last;
		 }
	 }
}

sub handle_http_request {
	 my $req = shift;
	 my $soap = shift;

	 # process the SOAP request
	 $soap->request( $req );
	 $soap->handle();

	 # return the SOAP response
	 return $soap->response();
}

Note that error and signal handling have been omitted to save space
and to direct attention to the main concepts.

Also note that this represents a forking server, suitable for a UNIX
type system (eg. Linux).  It is not multi-threaded and it may not
work on Windows.

--
Thomas J. Pinkl


This communication, including any attachments, may contain information that is
confidential and may be privileged and exempt from disclosure under applicable
law. It is intended solely for the use of the individual or entity to which it
is addressed. If you are not the intended recipient, you are hereby notified
that any use, disclosure, dissemination, or copying of this communication is
strictly prohibited. If you have received this communication in error, please
notify the sender. Thank you for your cooperation.

#6227 From: "Lamar Hawkins" <dhawkins@...>
Date: Wed Sep 10, 2008 9:14 pm
Subject: Setting the Prefix for a SOAP Response via SOAP::Data
dlamarhawkins
Send Email Send Email
 

I'm running Perl v5.8.0 built for i386-linux-thread-multi under Linux 2.4.21-57.ELsmp.  Our SOAP::Lite is at v0.710.08.

We're dealing with a picky SOAP client and have set up the following CGI dispatch file (use statements ommitted for brevity):

SOAP::Transport::HTTP::CGI
  ->dispatch_with({'http://echo.nasa.gov/v9/order/fulfillment' =>
    'OrderFulfillmentService'})
  ->handle;

exit 0;

package OrderFulfillmentService;

sub Submit {return (SOAP::Data->name('SubmitResponse')->type('xml')
  ->value(ECHODataOrder::DataOrderRequest(@_)));}

Because of the way the SOAP client calls our Submit service, we have to use the dispatch_with() syntax.  We successfully receive and process their communication and respond with something like this:

<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <SubmitResponse xmlns="
http://my.server.com/v7/order/fulfillment">
...

      </SubmitResponse>
   </soap:Body>
</soap:Envelope>

For some reason, SOAP::Lite automatically inserts the xmlns=http://my.server.com/v7/order/fulfillment in the SubmitResponse tag.  In any case, the SOAP client rejects our response.  The authors of the SOAP client believe that we need to modify our SubmitResponse such that a prefix is added like this:

      <order:SubmitResponse xmlns:order="http://my.server.com/v7/order/fulfillment">
...

      </order:SubmitResponse>

I have tried adding various elements to our "{return (SOAP::Data->" statement like "->prefix('order')" and "->attr({prefix=> 'order'}), but everything seems to be ignored.  How can I specify the prefix of my SubmitResponse message/tag?  Many thanks!


#6228 From: "Lamar Hawkins" <dhawkins@...>
Date: Tue Sep 16, 2008 11:06 pm
Subject: (Correction) Setting the Prefix for a SOAP Response via SOAP::Data
dlamarhawkins
Send Email Send Email
 

(A few of the xmlns values were incorrect.  They have been corrected inline below.)

I'm running Perl v5.8.0 built for i386-linux-thread-multi under Linux 2.4.21-57.ELsmp.  Our SOAP::Lite is at v0.710.08.

We're dealing with a picky SOAP client and have set up the following CGI dispatch file (use statements ommitted for brevity):

SOAP::Transport::HTTP::CGI
  ->dispatch_with({'http://echo.nasa.gov/v9/order/fulfillment' =>
    'OrderFulfillmentService'})
  ->handle;

exit 0;

package OrderFulfillmentService;

sub Submit {return (SOAP::Data->name('SubmitResponse')->type('xml')
  ->value(ECHODataOrder::DataOrderRequest(@_)));}

Because of the way the SOAP client calls our Submit service, we have to use the dispatch_with() syntax.  We successfully receive and process their communication and respond with something like this:

<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <SubmitResponse xmlns="http://echo.nasa.gov/v9/order/fulfillment">
...

      </SubmitResponse>
   </soap:Body>
</soap:Envelope>

For some reason, SOAP::Lite automatically inserts the xmlns=http://my.server.com/v7/order/fulfillment in the SubmitResponse tag.  In any case, the SOAP client rejects our response.  The authors of the SOAP client believe that we need to modify our SubmitResponse such that a prefix is added like this:

      <order:SubmitResponse xmlns:order="http://echo.nasa.gov/v9/order/fulfillment">
...

      </order:SubmitResponse>


I have tried adding various elements to our "{return (SOAP::Data->" statement like "->prefix('order')" and "->attr({prefix=> 'order'}), but everything seems to be ignored.  How can I specify the prefix of my SubmitResponse message/tag?  Many thanks!


#6229 From: "Oeschey, Lars (I/ET-83, extern)" <extern.lars.oeschey@...>
Date: Wed Sep 24, 2008 1:54 pm
Subject: How to get errors
lars.oeschey
Send Email Send Email
 
Hi,

I have a little script that uses SOAP. I have problems with error
handling. A little example script looks like this (working example):

use SOAP::Lite;
print SOAP::Lite
	 ->service('http://machine.tld:3003/wsdl/all')
	 ->teInput('lala,lulu');

when I run that, I get an error 500 from the SOAP server, which is
expected, because it expects 3 parameters. I want to catch that error in
my script. I used this:

my $result=SOAP::Lite
			 ->service('http://machine.tld:3003/wsdl/all')

->teInput("$barcode_with_num","$soapladestelle");
		 print "Error?: $!\n Result: $result\n";

but I never get anything in either $! or $result. How can I access (and
check of course) if there was an error from the SOAP server? It also
should give an error if the SOAP server isn't available at all (i.e.
server down)

any help?

Lars

#6230 From: "Lamar Hawkins" <dhawkins@...>
Date: Wed Sep 24, 2008 10:14 pm
Subject: Re: How to get errors
dlamarhawkins
Send Email Send Email
 
Try the following syntax:

$soap = SOAP::Lite
   -> uri("$yourURI")
   -> proxy("$yourProxy");

   eval {$soapReply = $soap->function($soapRequest);};
   if ($@) {
     chomp ($@);
     print "Server Error ->" . $@ . "<-...skipping";
     ++$errors;
     next;
   }
   elsif ($soapReply->fault) {
     print "Fault code   from function ->" .
       $soapReply->faultcode . "<-";
     print "Fault string from function ->" .
       $soapReply->faultstring . "<-...skipping";
     ++$errors;
     next;
   }




--- In soaplite@yahoogroups.com, "Oeschey, Lars (I/ET-83, extern)"
<extern.lars.oeschey@...> wrote:
>
> Hi,
>
> I have a little script that uses SOAP. I have problems with error
> handling. A little example script looks like this (working
example):
>
> use SOAP::Lite;
> print SOAP::Lite
>  ->service('http://machine.tld:3003/wsdl/all')
>  ->teInput('lala,lulu');
>
> when I run that, I get an error 500 from the SOAP server, which is
> expected, because it expects 3 parameters. I want to catch that
error in
> my script. I used this:
>
> my $result=SOAP::Lite
> 		 ->service('http://machine.tld:3003/wsdl/all')
>
> ->teInput("$barcode_with_num","$soapladestelle");
> 	 print "Error?: $!\n Result: $result\n";
>
> but I never get anything in either $! or $result. How can I access
(and
> check of course) if there was an error from the SOAP server? It
also
> should give an error if the SOAP server isn't available at all
(i.e.
> server down)
>
> any help?
>
> Lars
>

#6231 From: "Oeschey, Lars (I/ET-83, extern)" <extern.lars.oeschey@...>
Date: Thu Sep 25, 2008 7:49 am
Subject: RE: Re: How to get errors
lars.oeschey
Send Email Send Email
 
> Try the following syntax:

very nice, that works...

another question, I didn't write the server part, but I have a feeling
that it's not correctly implemented.
If I give a wrong set of parameters to the SOAP Server, I'm just getting
the http 500 Error. Though I think, I should get something in
SOAP->faultcode and SOAP->faultstring to give a better Error Message.
When the server is down, I get a http 503 Error, which is OK and should
be the only case I get a http Error. Internally the SOAP Server logs a
correct Error, i.e.

25.09.2008  9:33:27 [ERROR] TIdSoapServer.HandleSoapRequest():
IdSoapRpcXml.TIdSoapReaderXML.GetParameter: Parameter "in2" not found in
list "c-gensym3"

(that means parameter in2 is missing), shouldn't I get something like
this back to the client?

Lars

#6232 From: "Lamar Hawkins" <dhawkins@...>
Date: Thu Sep 25, 2008 5:36 pm
Subject: Re: How to get errors
dlamarhawkins
Send Email Send Email
 
You will find that the "500 Internal Server Error" is returned for
many cases where there is a problem on the server side like missing
parameters or restrictive file permissions.  The 500 error is what I
would expect for the situation you describe.

It would be nice to get something more descriptive from SOAP.
However, the error condition you describe is not a problem with SOAP
(transport), but a problem with the service/subroutine itself.  If
you have access to the parameter list on the server side before it's
(automatically?) parsed, you should be able to check that list and
return your own SOAP error code and string if parameters are missing
or invalid.

--- In soaplite@yahoogroups.com, "Oeschey, Lars (I/ET-83, extern)"
<extern.lars.oeschey@...> wrote:
>
> > Try the following syntax:
>
> very nice, that works...
>
> another question, I didn't write the server part, but I have a
feeling
> that it's not correctly implemented.
> If I give a wrong set of parameters to the SOAP Server, I'm just
getting
> the http 500 Error. Though I think, I should get something in
> SOAP->faultcode and SOAP->faultstring to give a better Error
Message.
> When the server is down, I get a http 503 Error, which is OK and
should
> be the only case I get a http Error. Internally the SOAP Server
logs a
> correct Error, i.e.
>
> 25.09.2008  9:33:27 [ERROR] TIdSoapServer.HandleSoapRequest():
> IdSoapRpcXml.TIdSoapReaderXML.GetParameter: Parameter "in2" not
found in
> list "c-gensym3"
>
> (that means parameter in2 is missing), shouldn't I get something
like
> this back to the client?
>
> Lars
>

#6233 From: "ashgromnies" <ashgromnies@...>
Date: Sat Sep 27, 2008 9:40 pm
Subject: Namespace issues with SOAP::Lite 0.60
ashgromnies
Send Email Send Email
 
I am using SOAP::Lite 0.60 and upgrade is not an option.

I am using dispatch_with to call the modules that have my logic to
generate the SOAP in them.

Here is a Data::Dumper of the return from a particular method call:

[Sat Sep 27 17:34:13 2008] $VAR1 = bless( {
[Sat Sep 27 17:34:13 2008] null:                  '_value' => [
[Sat Sep 27 17:34:13 2008] null:                                bless( {
[Sat Sep 27 17:34:13 2008] null:
    '_value' => [
[Sat Sep 27 17:34:13 2008] null:
                  3
[Sat Sep 27 17:34:13 2008] null:
                ],
[Sat Sep 27 17:34:13 2008] null:
    '_type' => 'xsd:int',
[Sat Sep 27 17:34:13 2008] null:
    '_signature' => [],
[Sat Sep 27 17:34:13 2008] null:
    '_name' => 'status',
[Sat Sep 27 17:34:13 2008] null:
    '_attr' => {}
[Sat Sep 27 17:34:13 2008] null:
  }, 'SOAP::Data' )
[Sat Sep 27 17:34:13 2008] null:                              ],
[Sat Sep 27 17:34:13 2008] null:                  '_type' =>
'tns1:pointHistoryRequestResponse',
[Sat Sep 27 17:34:13 2008] null:                  '_signature' => [],
[Sat Sep 27 17:34:13 2008] null:                  '_attr' => {
[Sat Sep 27 17:34:13 2008] null:
'xmlns:tns1' => 'http://soap.mysite.com'
[Sat Sep 27 17:34:13 2008] null:                             }
[Sat Sep 27 17:34:13 2008] null:                }, 'SOAP::Data' );


As you can see, I made a SOAP::Data object and forced the namespace to
be "tns1" and made the type of the pointHistoryRequestResponse element
in that namespace.

However, the XML SOAP::Lite generates from that SOAP::Data object is
different...

<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
    <SOAP-ENV:Body>
       <namesp1:pointHistoryRequestResponse
xmlns:namesp1="http://soap.mysite.com">
          <status xsi:type="xsd:int">3</status>
       </namesp1:pointHistoryRequestResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Some reason it decided to completely ignore my tns1 and make up its
own namespace, namesp1. This is causing extremely frustrating issues
for me.

In a more complex response, the tns1 will appear but SOAP::Lite also
decides to make up its own namespace.

If you'd like to see a more complex response, please ask, but that
simple one should be enough to show what I mean when I say that
SOAP::Lite is changing my namespace names.


How can I get around this issue and force SOAP::Lite to use the "tns1"
namespace like I want? I would greatly appreciate any assistance, I am
at wit's end.

#6234 From: "Oeschey, Lars (I/ET-83, extern)" <extern.lars.oeschey@...>
Date: Tue Sep 30, 2008 11:21 am
Subject: RE: Re: How to get errors
lars.oeschey
Send Email Send Email
 
> You will find that the "500 Internal Server Error" is returned for
> many cases where there is a problem on the server side like missing
> parameters or restrictive file permissions.  The 500 error is what I
> would expect for the situation you describe.
> It would be nice to get something more descriptive from SOAP.
> However, the error condition you describe is not a problem with SOAP
> (transport), but a problem with the service/subroutine itself.  If
> you have access to the parameter list on the server side before it's
> (automatically?) parsed, you should be able to check that list and
> return your own SOAP error code and string if parameters are missing
> or invalid.

hm, I asked the company that is responsible for the server side of the
SOAP I use. They told me they send a faultcode etc., it looks like this:

HTTP/1.1 500 Internal Server Error
Connection: close
Content-Type: text/xml; charset=utf-8
Content-Length: 561
Server: Indy/9.0.18
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soap:Body>
   <soap:Fault>
    <soap:faultcode>soap:Server</soap:faultcode>
    <soap:faultstring>
     IdSoapRpcXml.TIdSoapReaderXML.GetParameter: Parameter
     "in2" not found in list ""
    </soap:faultstring>
    <detail xsi:type="EIdSoapRequirementFail"></detail>
   </soap:Fault>
  </soap:Body>
</soap:Envelope>

However with your example code

use SOAP::Lite;
$soap= SOAP::Lite
	 ->uri('http://soap.data.inform.com')
	 ->proxy('http://soapserver.tld:3003/soap/');

eval {$soapReply = $soap->teInput("lala,lulu");};
   if ($@) {
     chomp ($@);
     print "Server Error ->" . $@ . "<-...skipping";
   }
   elsif ($soapReply->fault) {
  	 print "Fault code   from function ->" .
  	 $soapReply->faultcode . "<-";
  	 print "Fault string from function ->" .
  	 $soapReply->faultstring . "<-...skipping";
}
else {
	 print $soapReply;
}

I get nothing more than the 500 Server error. I think I should also get
the soap->faultcode etc., something must be still wrong on my side
then...

#6235 From: pat.mariani@...
Date: Wed Oct 1, 2008 12:18 am
Subject: RE: Re: How to get errors
w8itout
Send Email Send Email
 
I'm not a great perl person, but doesn't using eval put the fault string
out of scope for the block in which you are attempting to print?
 
I've always been able to get the error message back - and I never use eval
(i understand that it is handy for trapping errors and not crashing the script)
 
someone more perlwise help out here?
 
also, why are you testing the error path through your code, or do
you really want to send a single param in your call ?
(as opposed to teInput("lala", "lulu");)
 
 
-------------- Original message from "Oeschey, Lars (I/ET-83, extern)" <extern.lars.oeschey@...>: --------------

> You will find that the "500 Internal Server Error" is returned for
> many cases where there is a problem on the server side like missing
> parameters or restrictive file permissions. The 500 error is what I
> would expect for the situation you describe.
> It would be nice to get something more descriptive from SOAP.
> However, the error condition you describe is not a problem with SOAP
> (transport), but a problem with the service/subroutine itself. If
> you have access to the parameter list on the server side before it's
> (automatically?) parsed, you should be able to check that list and
> return your own SOAP error code and string if parameters are missing
> or invalid.

hm, I asked the company that is responsible for the server side of the
SOAP I use. They told me they send a faultcode etc., it looks like this:

HTTP/1.1 500 Internal Server Error
Connection: close
Content-Type: text/xml; charset=utf-8
Content-Length: 561
Server: Indy/9.0.18
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<soap:Fault>
<soap:faultcode>soap:Server</soap:faultcode>
<soap:faultstring>
IdSoapRpcXml.TIdSoapReaderXML.GetParameter: Parameter
&#34;in2&#34; not found in list &#34;&#34;
</soap:faultstring>
<detail xsi:type="EIdSoapRequirementFail"></detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>

However with your example code

use SOAP::Lite;
$soap= SOAP::Lite
->uri('http://soap.data.inform.com')
->proxy('http://soapserver.tld:3003/soap/');

eval {$soapReply = $soap->teInput("lala,lulu");};
if ($@) {
chomp ($@);
print "Server Error ->" . $@ . "<-...skipping";
}
elsif ($soapReply->fault) {
print "Fault code from function ->" .
$soapReply->faultcode . "<-";
print "Fault string from function ->" .
$soapReply->faultstring . "<-...skipping";
}
else {
print $soapReply;
}

I get nothing more than the 500 Server error. I think I should also get
the soap->faultcode etc., something must be still wrong on my side
then...


#6236 From: "Supra, Morne" <msupra@...>
Date: Wed Oct 1, 2008 6:26 am
Subject: Problem with parsin SOAP attachment
mornesupra
Send Email Send Email
 

Hi all

 

I am calling a Jasperserver SOAP server to get the results of a report. The call is successful, but I can not view the results. It always end with:

Can't call method "parts" without a package or object reference

 

I used the online example of how to retrieve attachments, but adapted it to my requirements:

#!c:\perl\bin\perl -w

 

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

use SOAP::MIME;

BEGIN {open(STDERR, '>c:\soap\client\jasperclient.log');}

 

$inputxml = '

&lt;request operationName=&quot;runReport&quot;&gt;&lt;argument name=&quot;RUN_OUTPUT_FORMAT&quot;&gt;HTML&lt;/argument&gt;&lt;argument name=&quot;PAGE&quot;&gt;0&lt;/argument&gt;&lt;resourceDescriptor name=&quot;&quot; wsType=&quot;reportUnit&quot; uriString=&quot;/reports/IDM/UserReview&quot; isNew

=&quot;false&quot;&gt;&lt;label&gt;&lt;/label&gt;&lt;parameter name=&quot;Date&quot;&gt;&lt;![CDATA[2008-05-31]]&gt;&lt;/parameter&gt;&lt;parameter name=&quot;BranchID&quot;&gt;&lt;![CDATA[211321]]&gt;&lt;/parameter&gt;&lt;/resourceDescriptor&gt;&lt;/request&gt;';

 

sub SOAP::Transport::HTTP::Client::get_basic_credentials {

    return 'jasperadmin' => 'password';

  }

 

$soap = SOAP::Lite->readable(1);

$service = $soap->service('http://jasperadmin:password@...:8080/jasperserver/services/repository?wsdl');

my $som = $service->runReport($inputxml);

 

 

foreach my $part (${$som->parts}) {

  print $part->stringify;

}

 

I receive 3 Parts in the return and I attach only snippets as the message is quite long:

SOAP::Transport::HTTP::Client::send_receive: POST http://10.33.13.185:8080/jasperserver/services/repository HTTP/1.1

Accept: text/xml

Accept: multipart/*

Proxy-Authorization: Basic b3JhbmdlXGYyOTQ2OTU1Om1lbnRhdEAyNg==

Content-Length: 1158

Content-Type: text/xml; charset=utf-8

SOAPAction: ""

 

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><namesp1:runReport xmlns:namesp1="http://axis2.ws.jasperserver.jaspersoft.com"><requestXmlString xsi:type="ns:string" xmlns:ns="http://www.w3.org/2001/XMLSchema">

&lt;request operationName=&quot;runReport&quot;&gt;&lt;argument name=&quot;RUN_OUTPUT_FORMAT&quot;&gt;HTML&lt;/argument&gt;&lt;argument name=&quot;PAGE&quot;&gt;0&lt;/argument&gt;&lt;resourceDescriptor name=&quot;&quot; wsType=&quot;reportUnit&quot; uriString=&quot;/reports/IDM/UserReview&quot; isNew

=&quot;false&quot;&gt;&lt;label&gt;&lt;/label&gt;&lt;parameter name=&quot;Date&quot;&gt;&lt;![CDATA[2008-05-31]]&gt;&lt;/parameter&gt;&lt;parameter name=&quot;BranchID&quot;&gt;&lt;![CDATA[211321]]&gt;&lt;/parameter&gt;&lt;/resourceDescriptor&gt;&lt;/request&gt;</requestXmlString></namesp1:runReport></SOAP-ENV:Body></SOAP-ENV:Envelope>

SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 200 OK

Connection: close

Date: Fri, 03 Oct 2008 08:53:34 GMT

Server: Apache-Coyote/1.1

Content-Type: multipart/related; type="text/xml"; start="<C8BAD2351CA238F871061100F3810C7E>";         boundary="----=_Part_150_2519124.1223024015421"

Client-Date: Wed, 01 Oct 2008 06:16:09 GMT

Client-Peer: 10.33.13.185:8080

Client-Response-Num: 1

 

 

 

------=_Part_150_2519124.1223024015421

Content-Type: text/xml; charset=UTF-8

Content-Transfer-Encoding: binary

Content-Id: <C8BAD2351CA238F871061100F3810C7E>

 

 

<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"><soapenv:Body><ns1:runReportResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://axis2.ws.jasperserver.jaspersoft.com"><runReportReturn xsi:type="ns2:string" xmlns:ns2="http://www.w3.org/2001/XMLSchema">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;operationResult version=&quot;2.0.1&quot;&gt;

            &lt;returnCode&gt;&lt;![CDATA[0]]&gt;&lt;/returnCode&gt;

&lt;/operationResult&gt;

</runReportReturn></ns1:runReportResponse></soapenv:Body></soapenv:Envelope>

------=_Part_150_2519124.1223024015421

Content-Type: text/html

Content-Transfer-Encoding: binary

Content-Id: <report>

 

 

<html>

<head>

  <title></title>

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

  <style type="text/css">

    a {text-decoration: none}

  </style>

</head>

<body text="#000000" link="#000000" alink="#000000" vlink="#000000">

<table width="100%" cellpadding="0" cellspacing="0" border="0">

<tr><td width="50%">&nbsp;</td><td align="center">

 

<a name="JR_PAGE_ANCHOR_0_1"/>

<table style="width: 1247px" cellpadding="0" cellspacing="0" border="0" bgcolor="white">

<tr>

  <td><img alt="" src="images/px" style="width: 30px; height: 1px;"/></td>

  <td><img alt="" src="images/px" style="width: 10px; height: 1px;"/></td>

  <td><img alt="" src="images/px" style="width: 63px; height: 1px;"/></td>

  <td><img alt="" src="images/px" style="width: 12px; height: 1px;"/></td>

  <td><im

</table>

 

</td><td width="50%">&nbsp;</td></tr>

</table>

</body>

</html>

 

 

------=_Part_150_2519124.1223024015421

Content-Type: image/gif

Content-Transfer-Encoding: binary

Content-Id: <img_0_0_3>

 

 

GIF89aÅ“ W Õ  ••ùÛ™ÑììO¶·±±²ð¹JöËmÃÄÄæz3â€â€â€¢Ã¶Â®9Â¥m-ÂÃÃppp,¨¨xÇǤÚÚûüüç‹7£Â_ååådL'àòòQRSê•8k‹lÑ9ñññ¸ââïøøŒvIüëÇ
››øŸ:1“†Ÿžüóà´Â;&#­†Y)……ÓÒÑš›üŠ5ܽ‚çAøúùdÀÀúw*öõõüÃEi_J
’‘Ë~9‚DDC?6)ëë룣¢ÃÃÃabcç‚6ÿÿÿ!ù


     ,    Å“ W  ÿÀŸpH,ÂȤrÉl:ŸÃ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ãè´zÃn»ßð¸|N¯Ûïø¼^ý*ùÿ~{Æ’X%  [1]‰Š‹‡%„ÂOˆ[1]â€â€œ[1]-—•‰ŽÂžFˆâ€â€¹[1]’‹•–ŸÂ/“£–Їˆ³¥¢£ /¬„%·¤-;­4ÅÆ7-–â€[1]«»w ÃŽ3â€Â­9' ÃÞß'98Ã
ÑÒsÔÎ.­8Üßòó 'â€3æéêo%æùrÃ8ï„
Qfœã×oÂ
…36X Hñ[Ž‹(6(< ¨¡
lÈ­d½“ñè°`b Âm@ˆTy²b·â€Ã³rËœ`s
Âÿ‰6kVÄ)žgx
[1]


ˆ           ,x¢êÒ‚(.Æ;±


)‑8œnȰ`F>

‑ø 

e™ZÈ¥Qð¦
…LdÃ… Â¢â€°â€ž"‑,¸Ã‹:xPâ!pâÅ

'ž¬˜
",p¡W[Iâ€â€“MjA
ƒÖâ€Ds h©yÂÅ Ã…Å’< ¢vÚ´C<¸à†îI<ðMâÂÂÞ¶““ A`ÀX êíÃ5Si^gˆ—Œ   


°¢¼yóv7­€
ð#ÂLJ0¾þ¼ù+Ú¿Ã
uy' â‚¬CP ªôAJ@@‑~äÙ—_qëÕ@ûß

Ã…W‑~èMÿBzƹÂÀRUÂö­8(

Îi7!€„Lˆab


ÔØÂÂ
¼ Ã 

RhD|íÑ'ã


5[1]&Þ‡>Šø
6LÂYk›%O
­0
]*Þ
NKL`


¸_Œ­6ÃÑ:ÊØc…? â„¢a„+<@Ä$Â@
pÀ‚lÃÙEI            €U2ÃD­lÂUÂÃX`Ã|~—ÄdÃâ„¢F¤É!Â^:„›ôñ¸[1]ÆÈ#›jHÃ[1]
‹[1]h=ÂÃ¥LBÓŪè‰á `C
ºŒ9áÂ‑
+¬°?¤É#mÅ“Rبæ·Û5Â`çnoìÂÂJÂړ¬V‑

€          fy{b79€


Âæ= Ã¿Ã®ÂºÃ«6'‚°#’ž2
§m$äWÞ
ÀqCSO¡ÃÔH7Â¥%
¤¥OYLÔ

 0ÂÃtL90

ôZD|
ê«ïx$ô»ã�ˆ—,pön˜­{åànž,ì)ÂÌ
˜€“UÞX°€9›•5ÃD
(´€

Ì<sÌ,€w


Â¥2:Ø2            ÃŽÂ
Ã‑˜ŒdLyœš¸ÕÖrfºÑ>L`v]úGQ
.ô
%7
, ‚
™ñ‰v—ø°C¿¾âG[1]»€GmçÔT[Þl†ºïd‚ð¦
ŒÀ‚ÙfK¹u´Öö[1]ÇM÷ÃwS΂

#Àpn¾ù5pÃ꬯îÂ


Æ@øîÿµÖº\„
Ò~H€ÆjôfCÙycÄ€      
Te[1]òžE¬Ù“@Ë)èâ€Ã§mÂ

xöm©±Ã^ø‚âž®Lë„@6ñ2¼έIä¼fÑÛ

:Þyûàƒ+ðm


Ó­Š ðŠÃ½"Ô
|­z“ŒHE
ô.=ç[ƒH0[1]ýïlN
ÚB–Ìd€&pÄP° ´¹à~ÕóÃèF@-íy

            4 Ã•¨¸ôtà†7„Aø 6`ˆÂþª×¥¢m0Eã“@V[1] Ú/tâ€Â³`[1]øgºÓq*l0â€ÃšÃ’
§@¯Âg<Å“ZªÒ Œ             °`õ&`D

-%(x"ÚÖhÃÂÿNŒ“ªÓ

RðB4A ãñÞœÄ


F!±ç‡$
¨†          ®@
BT#5ØØ %N*âó§¿4òï=üß
jS
&AG¾       ç
ƒQ¾)9ÊùƸ‘À
1H£$ö§

:*%DÛdÞ8™€P€G«l c""$üe0<Â3#°Ä†07ÂÔÃ5[1]äÒ‚C¤œ«[1]ÃŒM‚ÓhŒ            êÔB¯Œ!BgÃŒ%é?lðMæ9ÑXÃŒ;bÃÂe€y4àM~¢Å“`ļà z¢“ŸvA~xÃ2
 ?!è¦<ù™Æ4Ú3%

•"G‹i[1]‰¶'š“¢Ñ ´)„G[1]ÿ«3 Jeú¬Ã


3}C}V0[1]\nâ€Â£

ý


~

Ñ| uxdÂä•ÿI 1À©


$À÷x [1]6*Ö:²˜L• 0 Â¨Ã†$Âd¾aGÃ’@1‰To `¤kµÂPw'–މ ˆ@
:  
²QŒº  x5[1]ÈkãöêWÀæµ°?x ˆDØÄÈ
[1]³ô_ÒÔ Ü`­]h7P°ÑØQ
mY
‰
á@` ~}@
d
V‑Ö.[1]
ø›aÕØÉÆ³¾•¬édKۃF€9ÀÕMNÃð‚x,£0ÃZc Ú&Å¡6—&@-zÀÆÚÖÂÀ8e%À:VÄ*æµ
ÂÿWX
KX¯â€m
Ö‹§Úâ6¬0Ãë|! Y9Â5F

ºÃ4@j5@-RÂÕ_&¸TúÀS]wÂ×IËœj‑€V†W÷[1]Å“VXX®0í áw¸Â"¾CzÃxžÛÔ 0NA

jà ò@ â„¢}CcÙ 

å†CbÃ_»›c64ubâ„¢}ÉßPy
.åëd½ˆ!Éò÷ÂOÖC‡3\$‹ÈY
³˜ÇLæ2›ùÌhN³š×ÌfB¼ W°³+^ çbÕ9

2ØÛÀ˜ë*P€
äð‚ôå:ØÂ˜¬ ‑Ü ;à€xÂ


á'tý
Bº 5ÿ6=
T@BÂ* 1Q¿ Õ´
* é!ðà
¨@GVÂj
à`Ëœu­S½ëbԼX°ž5p€iK×'(@xÃ
H  ÕF€
À

Ü@/øvK
à @[1](÷

8àh@º#0×
ºR€T@
¸Â®… mwwEÂŽtø²ƒäABP€‹ê½ír«@[1]~´[1] ÃŽ`àv(  0à
p¥ •î

€ƒz


 Þ98tN â‚¬Ã @Ã¥V@´w  wç á=èAN€ƒ

üºãÖr€.$ ó–Ÿ [1]èÂ[1]r0ï‑¨à


Â>Ã

:’ƒ¼ Ã’.ßApÀÿfÿà9[1]’Žð9ȠÙ6×:ÆUPrà›é¿î
Å“ÃÆ’{@8@À£0p„ãû78´o@n
ÀºÚ?ðõ
>^í‑


zt­ó­ ÈŸ /·VA
x ƒ‑`\"GuÂî !
|à]Ã;ÀYîrpúÑt Ž
` +
èÃ@~û‑àúé

( á!\®pÂ|愇tÃ¥_À‹÷j‑GÀ­Âwh


:öÂ~=(à ¸œ
@÷ú

 € š


{Ç{Ës€€‑â€Â«Ã¶Ã‡8¿à ð¼âøQ~pkZcΒ;Ãr
—n,ç y7
°qÆ
nW.O·

pt×&ƒvpormæR§
å÷[1]  Ãö
:`p–Æ
â€|Âgph"Èm?0qB [1]å¶
½Â
ÀÖgGÂm7 }Ã~n&D mb"ƒæö
€oó&w×f_@r,¸{Ì&zLÈ<€ !(
x…S¸…\Ø…^ø…`†b8†dX†fx†hÈA  ;

------=_Part_150_2519124.1223024015421--

Can't call method "parts" without a package or object reference at jasperclient.pl line 22.

 

Any help would be appreciated.

 

Regards

 

Morne Supra

BIS - Development
Randburg
Tel (011) 998-2323, Cell 0832899946
e-mail msupra@...

First National Bank - a division of FirstRand Bank Limited.
An Authorised Financial Services Provider.

 

To read FirstRand Bank's Disclaimer for this email click on the following address or copy into your Internet browser:
https://www.fnb.co.za/disclaimer.html

If you are unable to access the Disclaimer, send a blank e-mail to firstrandbankdisclaimer@... and we will send you a copy of the Disclaimer.


#6237 From: "Oeschey, Lars (I/ET-83, extern)" <extern.lars.oeschey@...>
Date: Wed Oct 1, 2008 7:28 am
Subject: RE: Re: How to get errors
lars.oeschey
Send Email Send Email
 
> I'm not a great perl person, but doesn't using eval put the fault
string
> out of scope for the block in which you are attempting to print?

I also practically never used eval, so I don't know ;)

> I've always been able to get the error message back - and I
> never use eval
> (i understand that it is handy for trapping errors and not
> crashing the script)

The eval was a workaround, since without using it, I wouldn't get
*anything* back in case of error, the http 500 error wouldn't even come
back to me, and I had no idea if the call was successful.

> also, why are you testing the error path through your code, or do
> you really want to send a single param in your call ?
> (as opposed to teInput("lala", "lulu");)

hm, what do you mean?

Lars

#6238 From: "Oeschey, Lars (I/ET-83, extern)" <extern.lars.oeschey@...>
Date: Wed Oct 1, 2008 8:38 am
Subject: RE: Re: How to get errors
lars.oeschey
Send Email Send Email
 
I got a bit further on this, though not very successful. Using the
->trace method of SOAP::Lite, I could see what I'm sending and
receiving:

sent:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.
org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<namesp1:teInput xmlns:namesp1="http://soap.data.inform.com">
<c-gensym3 xsi:type="xsd:string">MAN9999999/1</c-gensym3>
<c-gensym5 xsi:type="xsd:string">LAD1020</c-gensym5>
<c-gensym7 xsi:type="xsd:int">1</c-gensym7>
</namesp1:teInput>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

received:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.
w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<soap:Fault>
<soap:faultcode>soap:Server</soap:faultcode>
<soap:faultstring>IdSoapRpcXml.TIdSoapReaderXML.GetParameter: Parameter
"in2" not found in list
"c-gensym3,c-gensym5,c-gensym7"</soap:faultstring>
<detail xsi:type="EIdSoapRequirementFail"></detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>

looking at the wsdl file, I see that the third parameter should be
string, while I send int (though I didn't do anything, somewhere it gets
autotyped):

<message name="teInput">
<part name="in0" type="xs:string"/>
<part name="in1" type="xs:string"/>
<part name="in2" type="xs:string"/>
</message>

So this is the reason, why it's denied. But: Why don't I get the fault
parameters? With this:

use SOAP::Lite;# +trace => [qw(all)];
my $soap= SOAP::Lite
	 ->uri('http://soap.data.inform.com')
	 ->proxy('http://audiinsa00220.in.audi.vwg:3003/soap/');

my $som=$soap->teInput("MAN9999999/1", "LAD1020", "1");

if ($som->fault) {
	 print $som->faultdetail;
	 print $som->faultcode;
	 print $som->faultstring;
	 print $som->faultactor;
}

I only get:
500 Internal Server Error at soaptest.pl line 6

and: How can I force the parameter to be a string?

Lars

#6239 From: "patrick mariani" <pat.mariani@...>
Date: Wed Oct 1, 2008 4:07 pm
Subject: Re: Re: How to get errors
w8itout
Send Email Send Email
 
eval is typically used to catch a critical error - exactly as  you said where perl
does not return. 
 
the parameter missing error you are receiving is because it expects two (3)
args, and you were only sending one - now, you do need to get your
error detection working - and i haven't had any problem printing
the faultcode and strings -
 
i recommend you read the wsdl with soap lite that will get the type correct.
in your second response
 
faultstring may only contain
"500 Internal Server Error at soaptest.pl line 6"
 
perhaps your server side code is bad?
 
 
-
 
----- Original Message -----
Sent: Wednesday, October 01, 2008 3:28 AM
Subject: RE: [soaplite] Re: How to get errors

> I'm not a great perl person, but doesn't using eval put the fault
string
> out of scope for the block in which you are attempting to print?

I also practically never used eval, so I don't know ;)

> I've always been able to get the error message back - and I
> never use eval
> (i understand that it is handy for trapping errors and not
> crashing the script)

The eval was a workaround, since without using it, I wouldn't get
*anything* back in case of error, the http 500 error wouldn't even come
back to me, and I had no idea if the call was successful.

> also, why are you testing the error path through your code, or do
> you really want to send a single param in your call ?
> (as opposed to teInput("lala", "lulu");)

hm, what do you mean?

Lars


#6240 From: "Bryan" <rdsxfan74@...>
Date: Thu Oct 2, 2008 5:46 pm
Subject: Can't call method ..... without a package or object reference
rdsxfan74
Send Email Send Email
 
Hi,

I am using SOAP-Lite v 0.710.08.  I am trying to get the result data
from the xml response, but I keep getting error 'Can't call
method "dataof" without a package or object reference at ...'.

Here is the response I am getting back from the webservice request:

<ServiceResponse>
	 <RequestType>CheckListenerStatus</RequestType>
	 <SuccessInd>Y</SuccessInd>
	 <Response>The Listener service is currently running.</Response>
	 <RequestDateTime>10/02/2008 13:12:01</RequestDateTime>
</ServiceResponse>

I then get the error when I make the following call:

my $successInd = $som->dataof('//ServiceResponse/SuccessInd');

How can I fix this?

#6241 From: "Oeschey, Lars (I/ET-83, extern)" <extern.lars.oeschey@...>
Date: Thu Oct 2, 2008 2:05 pm
Subject: RE: Re: How to get errors
lars.oeschey
Send Email Send Email
 
> the parameter missing error you are receiving is because it
> expects two (3)
> args, and you were only sending one - now, you do need to get your
> error detection working - and i haven't had any problem printing
> the faultcode and strings -
> i recommend you read the wsdl with soap lite that will get
> the type correct.
> in your second response

as you can see from the post after that one (btw, this is the slowest
list I know, not from participants but post speed, i.e. yahoo ;)), I've
been able to trace sent and received stuff. I also managed meanwhile, to
force the third parameter into "string" type, which can be seen with the
trace. I still get the same error from the other side, which I blame on
the server side now, but I still don't get the faultcode/string, and it
definitely is sent (which is also seen in the trace mentioned in the
previous mail)

> faultstring may only contain
> "500 Internal Server Error at soaptest.pl line 6"
> perhaps your server side code is bad?

maybe server-side code is bad... but the 500 Message comes not from
*within* SOAP but is just the transport error (same as with a web
server). I do see the SOAP fault in the trace, and it looks like it
should be captured by SOAP::Lite, but it isn't...

regards, Lars

#6242 From: rahed <raherh@...>
Date: Fri Oct 3, 2008 3:02 pm
Subject: Re: Can't call method ..... without a package or object reference
raherh
Send Email Send Email
 
> I keep getting error 'Can't call
> method "dataof" without a package or object reference at ...'.


> my $successInd = $som->dataof('//ServiceResponse/SuccessInd');

Appears your $som object is an empty string.

--
Radek

#6243 From: rahed <raherh@...>
Date: Sat Oct 4, 2008 3:53 pm
Subject: Re: Re: How to get errors
raherh
Send Email Send Email
 
> <message name="teInput">
> <part name="in0" type="xs:string"/>
> <part name="in1" type="xs:string"/>
> <part name="in2" type="xs:string"/>
> </message>

First don't input raw values to teInput function. Follow your service
description.
Something like this:

my $som=$soap->teInput(
                                       SOAP::Data->name(in0 => 'MAN9999999/1'),
                                       SOAP::Data->name(in1 => 'LAD1020'),
                                       SOAP::Data->name(in2 =>
1)->type('string'),
                                       );


--
Radek

#6244 From: "Oeschey, Lars (I/ET-83, extern)" <extern.lars.oeschey@...>
Date: Mon Oct 6, 2008 7:43 am
Subject: RE: Re: How to get errors
lars.oeschey
Send Email Send Email
 
> > <message name="teInput">
> > <part name="in0" type="xs:string"/>
> > <part name="in1" type="xs:string"/>
> > <part name="in2" type="xs:string"/>
> > </message>
>
> First don't input raw values to teInput function. Follow your service
> description.
> Something like this:
>
> my $som=$soap->teInput(
>                                       SOAP::Data->name(in0 =>
> 'MAN9999999/1'),
>                                       SOAP::Data->name(in1 =>
> 'LAD1020'),
>                                       SOAP::Data->name(in2 =>
> 1)->type('string'),

great, this works! Thanks a lot! Would you mind explaining what the
difference is now? Can I maybe read up somewhere about generic Soap
handling? It seems my fault was just not following "best practice", so
I'd like to know what "best practice" would be ;)

Lars

#6245 From: "Oeschey, Lars (I/ET-83, extern)" <extern.lars.oeschey@...>
Date: Mon Oct 6, 2008 1:50 pm
Subject: RE: Re: How to get errors
lars.oeschey
Send Email Send Email
 
> First don't input raw values to teInput function. Follow your service
> description.
> Something like this:
>
> my $som=$soap->teInput(
>                                       SOAP::Data->name(in0 =>
> 'MAN9999999/1'),
>                                       SOAP::Data->name(in1 =>
> 'LAD1020'),
>                                       SOAP::Data->name(in2 =>
> 1)->type('string'),

This works good for the positive case (i.e. all values are good). If I
want to get an error, by sending the last value as string, I should get
an error from $som->fault however. I only get a http 500 error. The
trace contains the fault though:

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/s
oap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.
xmlsoap.org/soap/envelope/"><soap:Body><teInput
xmlns="http://soap.data.inform.com"><in0
xsi:type="xsd:string">MAN9999999/1</in0><in1 xsi:type="xsd:st
ring">LAD22010</in1><in2
xsi:type="xsd:int">1</in2></teInput></soap:Body></soap:Envelope>
SOAP::Transport::HTTP::Client::send_receive:
HTTP::Response=HASH(0x1e38270)
SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal
Server Error
Cache-Control: proxy-revalidate
Connection: close
Date: Mon, 06 Oct 2008 13:44:41 GMT
Server: Indy/9.0.18
Content-Length: 689
Content-Type: text/xml; charset=utf-8
Client-Date: Mon, 06 Oct 2008 13:44:40 GMT
Client-Peer: 10.250.52.241:8080
Client-Response-Num: 1

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.
w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><soap:F
ault><soap:faultcode>soap:Server</soap:faultcode><soap:
faultstring>Type Mismatch. For the parameter in2, the type found was
"int" in the namespace
"http://www.w3.org/2001/XMLSchema", which
doesn't match any of the expected values:
{http://www.w3.org/2001/XMLSchema}string</soap:faultstring><detail
xsi:type="EIdSoapRequirementFail"></d
etail></soap:Fault></soap:Body></soap:Envelope>

I'm trying to get the fault like this:

if ($som->fault) {
	 print $som->faultdetail; # returns value of 'detail' element as
                             	 # string or object
	 print $som->faultcode;   #
	 print $som->faultstring; # also available
	 print $som->faultactor;  #
}
else {print "result:$som\n";}

#6246 From: rahed <raherh@...>
Date: Wed Oct 8, 2008 7:48 am
Subject: Re: Re: How to get errors
raherh
Send Email Send Email
 
> I'm trying to get the fault like this:
>
> if ($som->fault) {
> print $som->faultdetail; # returns value of 'detail' element as
> # string or object
> print $som->faultcode; #
> print $som->faultstring; # also available
> print $som->faultactor; #
> }
> else {print "result:$som\n";}

You should get the fault this way. You may changed the $som object
before calling a fault method.


--
Radek

#6247 From: rahed <raherh@...>
Date: Wed Oct 8, 2008 7:55 am
Subject: Re: Re: How to get errors
raherh
Send Email Send Email
 
> great, this works! Thanks a lot! Would you mind explaining what the
> difference is now? Can I maybe read up somewhere about generic Soap
> handling? It seems my fault was just not following "best practice", so
> I'd like to know what "best practice" would be ;)

A request expects a soap structure which is done by SOAP::Data class.
Check the SOAP::Lite docs.

--
Radek

#6248 From: "Tony Gravagno" <cwk6vka02@...>
Date: Mon Oct 13, 2008 10:43 pm
Subject: Upgraded client, getting SOAP errors
tgravagno
Send Email Send Email
 
We have Perl v5.8.0 client code that has always targeted SOAP 1.2
with SOAP::Lite 0.55.  It runs against a remote server with the same
releases.  We recently moved all of the client code to a new Linux
system with Perl 5.8.5 and SOAP::Lite 0.710.08. Now, when
communicating with the remote server we get error: Content-Type must
be 'text/xml' instead of 'application/soap'

I understand SOAP 1.2 uses this new content type over the old v1.1
text/xml, but again, this code has been working for years. The remote
server has not changed! We still have the old client system up and
can do side by side testing.

I tried changing the SOAP version to 1.1 just to send the content-
type that it's expecting, but then other issues come up, like a
hardcoded prefix SOAP-ENC:Array needs to be soapenc:Array.

Can I force the content-type of a v1.2 transaction to text/xml?
What else can be done to remedy this situation?  The people who own
the remote server will certainly not upgrade because of this.

Thanks!

#6249 From: rahed <raherh@...>
Date: Tue Oct 14, 2008 9:31 am
Subject: Re: Upgraded client, getting SOAP errors
raherh
Send Email Send Email
 
> I tried changing the SOAP version to 1.1 just to send the content-
> type that it's expecting, but then other issues come up, like a
> hardcoded prefix SOAP-ENC:Array needs to be soapenc:Array.
>
> Can I force the content-type of a v1.2 transaction to text/xml?
> What else can be done to remedy this situation? The people who own
> the remote server will certainly not upgrade because of this.

You can change the content-type with

$soap->transport->http_request->header('Content-type' => 'text/xml');

--
Radek

#6250 From: "Tony Gravagno" <cwk6vka02@...>
Date: Sat Oct 18, 2008 10:57 pm
Subject: Re: Upgraded client, getting SOAP errors
tgravagno
Send Email Send Email
 
I wrote:
> > I tried changing the SOAP version to 1.1 just to send the content-
> > type that it's expecting, but then other issues come up, like a
> > hardcoded prefix SOAP-ENC:Array needs to be soapenc:Array.
> >
> > Can I force the content-type of a v1.2 transaction to text/xml?
> > What else can be done to remedy this situation? The people who own
> > the remote server will certainly not upgrade because of this.

Radek responded
> You can change the content-type with
>
> $soap->transport->http_request->header('Content-type' => 'text/xml');

Thank you for the suggestion. This does change the header but the
server is now complaining that the client is using the wrong SOAP
version. There is a major difference between the headers sent before
and after the upgrade.

Before upgrade:

<SOAP-ENV:Envelope
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:SOAP-ENC="http://www.w3.org/2001/06/soap-encoding"
   xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   SOAP-ENV:encodingStyle="http://www.w3.org/2001/06/soap-encoding">

After upgrade:

<soap:Envelope
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:soapenc="http://www.w3.org/2003/05/soap-encoding"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"
   xmlns:soap="http://www.w3.org/2003/05/soap-envelope">

It looks like the server isn't prepared for the v2003 schemas that come
with SOAP::Lite v0.710 compared to v0.55 - and we cannot change the
server. As mentioned in my original post, SOAP-ENC:Array is hardcoded
into the transaction code and doesn't agree with the newer schema
anyway.

My current recommendation to the client is to downgrade SOAP::Lite and
that probably involves a downgrade of Perl as well, and that may affect
yet other dependencies. Better suggestions are welcome.

I'm hoping for a quick solution here, but my client is willing to pay
to get this resolved quickly if a solution needs to be more involved.
So far I have emailed Paul Kulchenko to request compensated services
but I have not received a response. I welcome emails from qualified
developers with references. You must have a complete understanding of
the situation (I believe my postings here have provided that) and a
ready proposal for a solution, we cannot fund research or education.

Thanks for your time.

#6251 From: Martin Kutter <martin.kutter@...>
Date: Sun Oct 19, 2008 10:17 am
Subject: Re: Re: Upgraded client, getting SOAP errors
kutterma
Send Email Send Email
 
Hi Tony,

the namespaces are defined in SOAP::Constants. Unfortunately they cannot
be overridden at run time, because perl's peep-hole optimizer inlines
constants.

However, the constants are not used directly by SOAP::Lite, but through
the following SOAP::Constants variables:

@SUPPORTED_ENCODING_STYLES
%XML_SCHEMAS
%XML_SCHEMA_OF
%SOAP_VERSIONS

To change all occurances, do the following:

BEGIN {
use SOAP::Lite

my $url_enc = "http://www.w3.org/2001/06/soap-encoding";
my $url_env = "http://www.w3.org/2001/06/soap-envelope";

push @SOAP::Constants::SUPPORTED_ENCODING_STYLES, $url_enc;

$SOAP::Constants::SOAP_VERSIONS{'1.2'}->{NS_ENC} = $url_enc;
$SOAP::Constants::SOAP_VERSIONS{'1.2'}->{NS_ENV} = $url_env;

$SOAP::Contants::XML_SCHEMAS{$url_enc} = 'SOAP::XMLSchemaSOAP1_2';
$SOAP::Contants::XML_SCHEMAS_OF{$url_enc} = 'XMLSchemaSOAP1_2';
}

This should change the (new) namespaces back to the old ones throughout
SOAP::Lite (untested...).

Note that SOAP::Constants variables are global - all your SOAP::Lite
instances in the current process will be affected (may be an issue under
mod_perl).

Martin


Am Samstag, den 18.10.2008, 22:57 +0000 schrieb Tony Gravagno:
> ...
> Thank you for the suggestion. This does change the header but the
> server is now complaining that the client is using the wrong SOAP
> version. There is a major difference between the headers sent before
> and after the upgrade.
>
> Before upgrade:
>
> <SOAP-ENV:Envelope
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:SOAP-ENC="http://www.w3.org/2001/06/soap-encoding"
> xmlns:SOAP-ENV="http://www.w3.org/2001/06/soap-envelope"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> SOAP-ENV:encodingStyle="http://www.w3.org/2001/06/soap-encoding">
>
> After upgrade:
>
> <soap:Envelope
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:soapenc="http://www.w3.org/2003/05/soap-encoding"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding"
> xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
>
> It looks like the server isn't prepared for the v2003 schemas that
> come
> with SOAP::Lite v0.710 compared to v0.55 - and we cannot change the
> server. As mentioned in my original post, SOAP-ENC:Array is hardcoded
> into the transaction code and doesn't agree with the newer schema
> anyway.
>
> My current recommendation to the client is to downgrade SOAP::Lite
> and
> that probably involves a downgrade of Perl as well, and that may
> affect
> yet other dependencies. Better suggestions are welcome.
>
> I'm hoping for a quick solution here, but my client is willing to pay
> to get this resolved quickly if a solution needs to be more involved.
> So far I have emailed Paul Kulchenko to request compensated services
> but I have not received a response. I welcome emails from qualified
> developers with references. You must have a complete understanding of
> the situation (I believe my postings here have provided that) and a
> ready proposal for a solution, we cannot fund research or education.
>
> Thanks for your time.
>
>
>
>
>

#6252 From: "paolo_asioli" <paolo.asioli@...>
Date: Mon Oct 20, 2008 2:08 pm
Subject: Problem setting params in a client call
paolo_asioli
Send Email Send Email
 
Hello,

I'm trying to call a webservice (which I think is generated using axis).

If I specify the WSDL I always get the same empty param in the request even if I try to create it manually using SOAP:Data:Builder

I'm attaching the WSDL (with some obfuscatin for security reasons).

I'd be really grateful if someone could help me understand where I'm making a mistake...

Best regards,
     Paolo


Here is the relevant code:
        # create new Builder object
        my $soap_data_builder = SOAP::Data::Builder->new();

        #my $array = $soap_data_builder->add_elem(name => 'NonWHStockConfirmationRequest',
        #                             attributes => {"xsi:type"=>"impl:ArrayType0"});
        my $array = $soap_data_builder->add_elem(name => 'NonWHStockConfirmationRequest');

        my $richiesta = $soap_data_builder->add_elem(name => 'NonWHStockConfirmation',
                                     parent => $array);

        $soap_data_builder->add_elem(name => 'annoOrdineFornitore',
                                     value => $anno_ordine_fornitore,
                                     parent => $richiesta);
       
        $soap_data_builder->add_elem(name => 'catena',
                                     value => $catena,
                                     parent => $richiesta);
       
        $soap_data_builder->add_elem(name => 'numeroOrdineFornitore',
                                     value => $numero_ordine_fornitore,
                                     parent => $richiesta);
       
        $soap_data_builder->add_elem(name => 'rigaOrdineFornitore',
                                     value => $riga_ordine_fornitore,
                                     parent => $richiesta);
       
        $soap_data_builder->add_elem(name => 'quantita',
                                     value => $quantita,
                                     parent => $richiesta);
       
        print Dumper(SOAP::Lite->service($wsdl)->NonWHStockConfirmation($soap_data_builder->to_soap_data));



The request that is sent is the following :

POST http://XXXXXXXXX/StockWS HTTP/1.1
Accept: text/xml
Accept: multipart/*
Accept: application/soap
Content-Length: 771
Content-Type: text/xml; charset=utf-8
SOAPAction: ""

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope
xmlns:tns2="http://common.core.beehive.intershop.com"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:impl="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body>
<impl:NonWHStockConfirmation><NonWHStockConfirmationRequest xsi:nil="true"
xsi:type="impl:ArrayType0" /></impl:NonWHStockConfirmation></soap:Body>
</soap:Envelope>


I can't understand why SOAP::Lite is ignoring the data element I supply (and I've also tried with different combinations of SOAP::Data) using an empty parameter.


Here is the WSDL
<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com" xmlns:tns2="http://common.core.beehive.intershop.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com">
  <wsdl:types>
    <schema targetNamespace="http://common.core.beehive.intershop.com" xmlns="http://www.w3.org/2001/XMLSchema">
      <import namespace="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com"/>
      <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
      <complexType abstract="true" name="DObject">
        <sequence/>
      </complexType>
    </schema>
    <schema targetNamespace="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com" xmlns="http://www.w3.org/2001/XMLSchema">
      <import namespace="http://common.core.beehive.intershop.com"/>
      <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
      <complexType name="NonWHStockConfirmation">
        <complexContent>
          <extension base="tns2:DObject">
            <sequence>
              <element name="annoOrdineFornitore" nillable="true" type="soapenc:int"/>
              <element name="catena" nillable="true" type="soapenc:string"/>
              <element name="numeroOrdineFornitore" nillable="true" type="soapenc:int"/>
              <element name="quantita" nillable="true" type="soapenc:int"/>
              <element name="rigaOrdineFornitore" nillable="true" type="soapenc:int"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="PickingConfirmation">
        <complexContent>
          <extension base="tns2:DObject">
            <sequence>
              <element name="catena" nillable="true" type="soapenc:string"/>
              <element name="dataBolla" nillable="true" type="soapenc:string"/>
              <element name="lineItemPosition" nillable="true" type="soapenc:int"/>
              <element name="numeroBolla" nillable="true" type="soapenc:int"/>
              <element name="orderNumber" nillable="true" type="soapenc:int"/>
              <element name="quantita" nillable="true" type="soapenc:int"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="ArrayType0">
        <complexContent>
          <restriction base="soapenc:Array">
            <attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:NonWHStockConfirmation[]"/>
          </restriction>
        </complexContent>
      </complexType>
      <complexType name="ArrayType2">
        <complexContent>
          <restriction base="soapenc:Array">
            <attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:PickingConfirmation[]"/>
          </restriction>
        </complexContent>
      </complexType>
      <complexType name="ArrayType3">
        <complexContent>
          <restriction base="soapenc:Array">
            <attribute ref="soapenc:arrayType" wsdl:arrayType="soapenc:string[]"/>
          </restriction>
        </complexContent>
      </complexType>
    </schema>
  </wsdl:types>
  <wsdl:message name="PickingConfirmationRequest">
    <wsdl:part name="PickingConfirmationRequest" type="impl:ArrayType2"/>
  </wsdl:message>
  <wsdl:message name="NonWHStockConfirmationRequest">
    <wsdl:part name="NonWHStockConfirmationRequest" type="impl:ArrayType0"/>
  </wsdl:message>
  <wsdl:message name="PickingConfirmationResponse">
    <wsdl:part name="PickingConfirmationResponse" type="impl:ArrayType3"/>
  </wsdl:message>
  <wsdl:message name="EchoTestRequest">
    <wsdl:part name="Input" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="NonWHStockConfirmationResponse">
    <wsdl:part name="NonWHStockConfirmationResponse" type="impl:ArrayType3"/>
  </wsdl:message>
  <wsdl:message name="EchoTestResponse">
    <wsdl:part name="Output" type="xsd:string"/>
  </wsdl:message>
  <wsdl:portType name="StockWS">
    <wsdl:operation name="NonWHStockConfirmation" parameterOrder="NonWHStockConfirmationRequest">
      <wsdl:input name="NonWHStockConfirmationRequest" message="impl:NonWHStockConfirmationRequest"/>
      <wsdl:output name="NonWHStockConfirmationResponse" message="impl:NonWHStockConfirmationResponse"/>
    </wsdl:operation>
    <wsdl:operation name="PickingConfirmation" parameterOrder="PickingConfirmationRequest">
      <wsdl:input name="PickingConfirmationRequest" message="impl:PickingConfirmationRequest"/>
      <wsdl:output name="PickingConfirmationResponse" message="impl:PickingConfirmationResponse"/>
    </wsdl:operation>
    <wsdl:operation name="EchoTest" parameterOrder="Output Input">
      <wsdl:input name="EchoTestRequest" message="impl:EchoTestRequest"/>
      <wsdl:output name="EchoTestResponse" message="impl:EchoTestResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="StockWSSoapBinding" type="impl:StockWS">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="NonWHStockConfirmation">
      <wsdlsoap:operation/>
      <wsdl:input>
        <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com"/>
      </wsdl:input>
      <wsdl:output>
        <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="PickingConfirmation">
      <wsdlsoap:operation/>
      <wsdl:input>
        <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com"/>
      </wsdl:input>
      <wsdl:output>
        <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="EchoTest">
      <wsdlsoap:operation/>
      <wsdl:input>
        <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com"/>
      </wsdl:input>
      <wsdl:output>
        <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://ws.stock.XXXXXXXX.enfinity.YYYYY.com"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="StockWS">
    <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
Implement Web Services for Stock automation  </wsdl:documentation>
    <wsdl:port name="StockWS" binding="impl:StockWSSoapBinding">
      <wsdlsoap:address location="http://www.XXXXXXXXX/StockWS"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>





Messages 6223 - 6252 of 6629   Oldest  |  < Older  |  Newer >  |  Newest
Add to My Yahoo!      XML What's This?

Copyright © 2010 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines NEW - Help