You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(2) |
Nov
(7) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
|
Feb
|
Mar
(1) |
Apr
(23) |
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(6) |
Nov
|
Dec
(2) |
2005 |
Jan
(2) |
Feb
|
Mar
|
Apr
(1) |
May
(6) |
Jun
(4) |
Jul
(4) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(4) |
2006 |
Jan
(1) |
Feb
(6) |
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
(1) |
Aug
(4) |
Sep
(4) |
Oct
(4) |
Nov
(6) |
Dec
(3) |
2007 |
Jan
(1) |
Feb
(6) |
Mar
|
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(2) |
Aug
|
Sep
(12) |
Oct
(19) |
Nov
(7) |
Dec
(7) |
2008 |
Jan
(14) |
Feb
(27) |
Mar
(23) |
Apr
(5) |
May
|
Jun
(1) |
Jul
|
Aug
(9) |
Sep
(22) |
Oct
|
Nov
(5) |
Dec
(7) |
2009 |
Jan
|
Feb
(3) |
Mar
(1) |
Apr
(3) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
2010 |
Jan
|
Feb
(8) |
Mar
|
Apr
(1) |
May
|
Jun
(5) |
Jul
(4) |
Aug
(2) |
Sep
(5) |
Oct
(1) |
Nov
(2) |
Dec
(2) |
2011 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
|
May
(7) |
Jun
(3) |
Jul
(8) |
Aug
(9) |
Sep
(5) |
Oct
(4) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(5) |
May
|
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(6) |
Oct
(20) |
Nov
(15) |
Dec
(11) |
2013 |
Jan
(1) |
Feb
(40) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Martin K. <mar...@fe...> - 2010-06-22 18:17:39
|
Hi Thorsten, it looks like the DESTROY method clobbers $@ - so there are two possible solutions: Either the one you described (which is fixing symptoms), or localizing $@ like in sub DESTROY { local $@; eval { } } This restores $@ after the enclosing block. And I heard yesterday in my local perl mongers group that perl 5.13 automatically localizes $@ in DESTROY, but I fear upgrading is not an option ;-) What I don't read from your mails is whether your problem is already fixed by re-throwing a SOAP::Fault - so please send again if not. Regards, Martin Am Dienstag, den 22.06.2010, 14:15 +0200 schrieb Thorsten Schöning: > Guten Tag Thorsten Schöning, > am Dienstag, 22. Juni 2010 um 12:18 schrieben Sie: > > > Now I have the problem again and hunted it down to an eval{} in the > > Package DBIx::Log4perl::db. > > I've tested my code again and it seems I have this problem: > > http://search.cpan.org/~elliotjs/Perl-Critic-1.106/lib/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm > > I do have DESTROY which is always called and calls > DBIx::Log4perl::db::disconnect indirectly while disocnnecting from the > database. In this function eval is used successfully, which resets $@ > and SOAP-Lite can't detect the former die anymore, which let the code > stop because of an error. > > What I don't understand is, if I do a eval{} myself to catch the > exception and save $@ in a variable, $@ doesn't seem to be reset. If I > die directly in that eval again, no matter if I die with $@ or > something else, SOAP-Lite sends an empty response again. > > Won't work: > eval > { > someClass->new()->someMethod(); > } or die 'test'; > [download] > > Does work: > my $retVal = undef; > eval > { > someClass->new()->someMethod(); > } or $retVal = SOAP::Fault->new(faultstring => $@); > die $retVal; > [download] > > $retVal will have the proper message from $@ from the die in > someMethod. I would have expected that $@ is always cleared because of > DESTROY is always called in the eval above. > > Mit freundlichen Grüßen, > > Thorsten Schöning > |
From: Thorsten S. <tsc...@am...> - 2010-06-22 15:57:57
|
Guten Tag Thorsten Schöning, am Dienstag, 22. Juni 2010 um 12:18 schrieben Sie: > Now I have the problem again and hunted it down to an eval{} in the > Package DBIx::Log4perl::db. I've tested my code again and it seems I have this problem: http://search.cpan.org/~elliotjs/Perl-Critic-1.106/lib/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm I do have DESTROY which is always called and calls DBIx::Log4perl::db::disconnect indirectly while disocnnecting from the database. In this function eval is used successfully, which resets $@ and SOAP-Lite can't detect the former die anymore, which let the code stop because of an error. What I don't understand is, if I do a eval{} myself to catch the exception and save $@ in a variable, $@ doesn't seem to be reset. If I die directly in that eval again, no matter if I die with $@ or something else, SOAP-Lite sends an empty response again. Won't work: eval { someClass->new()->someMethod(); } or die 'test'; [download] Does work: my $retVal = undef; eval { someClass->new()->someMethod(); } or $retVal = SOAP::Fault->new(faultstring => $@); die $retVal; [download] $retVal will have the proper message from $@ from the die in someMethod. I would have expected that $@ is always cleared because of DESTROY is always called in the eval above. Mit freundlichen Grüßen, Thorsten Schöning -- Thorsten Schöning AM-SoFT IT-Systeme - Hameln | Potsdam | Leipzig Telefon: Potsdam: 0331-743881-0 E-Mail: tsc...@am... Web: http://www.am-soft.de AM-SoFT GmbH IT-Systeme, Konsumhof 1-5, 14482 Potsdam Amtsgericht Potsdam HRB 21278 P, Geschäftsführer: Andreas Muchow |
From: Thorsten S. <tsc...@am...> - 2010-06-22 10:35:18
|
Hello all, I have some missing SOAP-Faults with Soap:Lite 0.710.08 on Windows Server 2003 R2 SP2 32 Bit with ActivePerl-5.10.1.1007-MSWin32-x86-291969.msi. We have two simple webservices provided through SOAP::Transport::HTTP::CGI with each having it's own dispatcher CGI-script, it's own classes etc. Soap-Lite dispatches the requests using a class instance provided with dipsatch_with and this class instance create a new class instance with the real webservice logic, for example accessing the database and doing some stuff. I recently found that under some circumstances when the logic implementing class dies, the execution stops as expected but the error message does not reach the client. In those circumstances Soap-Lite seems to generate and empty response from the called function, which is not what I need, of course. The first time I recognized this behaviour I hunted it down to the DESTROY method of the class with the logic which used an eval{} to catch errors from the method disconnecting from the database. I played a little bit and it seemd that only the existance of an eval{} with no code in it or elswhere in DESTROY made the difference: If the eval was present and I died somewhere in the class, Saop-Lite didn't generate a saup:Faul but an empty response from the called method. Without the eval{} Soap-Lite responded with a soap-Fault, as needed. I just deleted that eval{} because I didn't need it anymore. Now I have the problem again and hunted it down to an eval{} in the Package DBIx::Log4perl::db. If this eval is present and my method dies after initiating the database connection using DBIx::Log4perl, SOAP-Lite again just generates empty method call responses. dieing before the database initialisation and therefore don't using DBIx::Log4perl generates a soap:Fault, as expected. Don't using DBIx::Log4perl but normally calling DBI->connect(...) does generate a soap:Fault even with establashing the database connection. But of course I want to use DBIx::Log4perl. I don't think it has something to do with DBIx::Log4perl directly because my second webservice does establish the database connection using DBIx::Log4perl and dieing in that webservice after connecting does produce a soap:Fault. It seems it has something to do with the eval{} in some specific caller depth or stuff likie that, but I'm really stuck here. Do you have any idea under which circumstances SOAP-Lite may not be able to recognize a die properly or can't get the error message to produce a soap:Fault? Thanks for any hints! One example response how it should be: <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> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>test2 at D:/Benutzer/tschoening/Eigene Dateien/Eclipse/Perl-Bibliotheken/stmodul/elrev_dotnet.pm line 5906.</faultstring> </soap:Fault> </soap:Body> </soap:Envelope> ...and how it is with eval{} in DBIx::Log4perl::db present: <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> <elrev_SchreibeLabelResponse xsi:nil="true" xmlns="http://localhost/elrev_dotnet"/> </soap:Body> </soap:Envelope> Mit freundlichen Grüßen, Thorsten Schöning -- Thorsten Schöning AM-SoFT IT-Systeme - Hameln | Potsdam | Leipzig Telefon: Potsdam: 0331-743881-0 E-Mail: tsc...@am... Web: http://www.am-soft.de AM-SoFT GmbH IT-Systeme, Konsumhof 1-5, 14482 Potsdam Amtsgericht Potsdam HRB 21278 P, Geschäftsführer: Andreas Muchow |
From: jimmy Z. <jz...@xi...> - 2010-04-13 08:29:58
|
VTD-XML 2.8 has been released. Please visit https://sourceforge.net/projects/vtd-xml/files/ to download the latest version. a.. Expansion of Core VTD-XML API a.. VTDGen adds support for capturing white spaces b.. VTDNav adds support for suport for getContentFragment(), recoverNode() and cloneNav() c.. XMLModifier adds support for update and reparse feature d.. AutoPilot adds support for retrieving all attributes e.. BookMark is also enhanced. b.. Expansion of Extended VTD-XML API a.. Add content extraction ability to extended VTD-XML b.. VTDNavHuge now can call getElementFragment() and getElementFragmentNs() c.. VTDGenHuge adds support for capturing white spaces c.. XPath a.. Adds comment and processing instruction support for nodes, and performance enhancement b.. Adds namespace axis support … c.. Adds round-half-to-even() d.. A number of bug fixes and code enhancement |
From: Langston, J. <Jam...@co...> - 2010-02-22 16:06:00
|
Sorry to check out for a few of days, I recreated this same call to the service with Java, and did not have any problems. What I noticed is that with Java, the generated classes are creating the elements with arrays, on the Perl side, I did not do that. which is what is accounting for the nils, and I'm now looking at SOAP::WSDL, as well as, SOAP::Data::ComplexType. Are there any good examples of handling: <xs:complexType name="ArrayOfMonitorSiteOrder"> − <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="MonitorSite" nillable="true" type="MonitorSiteOrder"/> </xs:sequence> </xs:complexType> Jim ///////////////////////////////// Jim Langston Technical Consultant jam...@co... The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it. From: rahed [mailto:ra...@gm...] Sent: Friday, February 05, 2010 2:06 PM To: Langston, James Cc: soa...@li... Subject: Re: [Soaplite-devel] xsi:nil ? "Langston, James" <Jam...@co...> writes: > I have tried this as well: > > -> outputxml(1) > -> on_action(sub{join '', @_}) > -> soapversion('1.2') > -> envprefix('env') > -> encprefix('enc') > -> autotype(0) > > > I know that the soapversion and envprefix are required, as the call will > fail if not set. The autotype > did not have any effect when I added previously. I just tried again with > the same results, that is, the > xsi:nil="true" is getting added in that element. another question: is > this getting added by > the server, or perl after getting the xsd information back from the > server, but before creating > the envelop to send? Will you send the minimal code which results in xsi:nil="true" type? With use SOAP::Lite +trace=>'all'; $soap = SOAP::Lite->new(uri=>'your_namespace',proxy=>'your_endpoint'); $soap->autotype(0); you will see that type definitions are removed. -- Radek |
From: rahed <ra...@gm...> - 2010-02-05 19:05:50
|
"Langston, James" <Jam...@co...> writes: > I have tried this as well: > > -> outputxml(1) > -> on_action(sub{join '', @_}) > -> soapversion('1.2') > -> envprefix('env') > -> encprefix('enc') > -> autotype(0) > > > I know that the soapversion and envprefix are required, as the call will > fail if not set. The autotype > did not have any effect when I added previously. I just tried again with > the same results, that is, the > xsi:nil="true" is getting added in that element. another question: is > this getting added by > the server, or perl after getting the xsd information back from the > server, but before creating > the envelop to send? Will you send the minimal code which results in xsi:nil="true" type? With use SOAP::Lite +trace=>'all'; $soap = SOAP::Lite->new(uri=>'your_namespace',proxy=>'your_endpoint'); $soap->autotype(0); you will see that type definitions are removed. -- Radek |
From: Langston, J. <Jam...@co...> - 2010-02-05 16:26:38
|
Also, is there another way for me to look at what is getting sent to the server? I'm looking at the debug output. thanks, Jim ///////////////////////// Jim Langston Technical Consultant jam...@co... The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it. From: rahed [mailto:ra...@gm...] Sent: Friday, February 05, 2010 10:06 AM To: Langston, James Cc: soa...@li... Subject: Re: [Soaplite-devel] xsi:nil ? "Langston, James" <Jam...@co...> writes: > Hi all, > > In creating my elements and sending them to the server, I get > xsi:nil="true" put into the element, even though > I have not put it there. > > $monitorOrder->add_elem(name=>'MonitorSite', > attributes=>{ > 'siteId'=>"330" > }) ; > > expecting > > <MonitorSite siteId="330"/> > > I get > > <MonitorSite xsi:nil="true" siteId="330"/> > Cannot you set autotype to 0 before sending the message to the server? $client->autotype(0); should disable data autotyping. -- Radek |
From: Langston, J. <Jam...@co...> - 2010-02-05 16:17:33
|
I have tried this as well: -> outputxml(1) -> on_action(sub{join '', @_}) -> soapversion('1.2') -> envprefix('env') -> encprefix('enc') -> autotype(0) I know that the soapversion and envprefix are required, as the call will fail if not set. The autotype did not have any effect when I added previously. I just tried again with the same results, that is, the xsi:nil="true" is getting added in that element. another question: is this getting added by the server, or perl after getting the xsd information back from the server, but before creating the envelop to send? Jim /////////////////////////// Jim Langston Technical Consultant jam...@co... The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it. From: rahed [mailto:ra...@gm...] Sent: Friday, February 05, 2010 10:06 AM To: Langston, James Cc: soa...@li... Subject: Re: [Soaplite-devel] xsi:nil ? "Langston, James" <Jam...@co...> writes: > Hi all, > > In creating my elements and sending them to the server, I get > xsi:nil="true" put into the element, even though > I have not put it there. > > $monitorOrder->add_elem(name=>'MonitorSite', > attributes=>{ > 'siteId'=>"330" > }) ; > > expecting > > <MonitorSite siteId="330"/> > > I get > > <MonitorSite xsi:nil="true" siteId="330"/> > Cannot you set autotype to 0 before sending the message to the server? $client->autotype(0); should disable data autotyping. -- Radek |
From: rahed <ra...@gm...> - 2010-02-05 15:06:07
|
"Langston, James" <Jam...@co...> writes: > Hi all, > > In creating my elements and sending them to the server, I get > xsi:nil="true" put into the element, even though > I have not put it there. > > $monitorOrder->add_elem(name=>'MonitorSite', > attributes=>{ > 'siteId'=>"330" > }) ; > > expecting > > <MonitorSite siteId="330"/> > > I get > > <MonitorSite xsi:nil="true" siteId="330"/> > Cannot you set autotype to 0 before sending the message to the server? $client->autotype(0); should disable data autotyping. -- Radek |
From: Langston, J. <Jam...@co...> - 2010-02-05 13:00:21
|
In this case, I’m on a RedHat system, what I can’t figure out is how it is getting put in as a value to begin with. If it is on my end, how can I stop it? The message schema provided by the server looks like: <xs:complexType name="ArrayOfMonitorSiteOrder"> − <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="MonitorSite" nillable="true" type="MonitorSiteOrder"/> </xs:sequence> </xs:complexType> − <xs:complexType name="MonitorSiteOrder"> <xs:attribute name="siteId" type="xs:int" use="required"/> </xs:complexType> Jim ///////////////////////////////////////////// Jim Langston Technical Consultant jam...@co... From: ran...@gm... [mailto:ran...@gm...] On Behalf Of Leo Lapworth Sent: Friday, February 05, 2010 3:53 AM To: Langston, James Cc: soa...@li... Subject: Re: [Soaplite-devel] xsi:nil ? On 4 February 2010 22:55, Langston, James <Jam...@co...> wrote: $monitorOrder->add_elem(name=>'MonitorSite', attributes=>{ 'siteId'=>"330" }) ; expecting <MonitorSite siteId=”330”/> I get <MonitorSite xsi:nil=”true” siteId=”330”/> I can't tell you how to stop it I'm afraid. It is standard that if the element has no value then this attribute is set (.Net also adds it by default), so I would suggest it would be better to solve the issue on the parser side (e.g. where this data is being sent to) to allow this - if at all possible. Leo Leo The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it. |
From: Leo L. <le...@cu...> - 2010-02-05 08:53:12
|
On 4 February 2010 22:55, Langston, James <Jam...@co...>wrote: > $monitorOrder->add_elem(name=>'MonitorSite', > > attributes=>{ > > 'siteId'=>"330" > > }) ; > > expecting > > <MonitorSite siteId=”330”/> > > I get > > <MonitorSite xsi:nil=”true” siteId=”330”/> > I can't tell you how to stop it I'm afraid. It is standard that if the element has no value then this attribute is set (.Net also adds it by default), so I would suggest it would be better to solve the issue on the parser side (e.g. where this data is being sent to) to allow this - if at all possible. Leo Leo |
From: Langston, J. <Jam...@co...> - 2010-02-04 23:20:47
|
Hi all, In creating my elements and sending them to the server, I get xsi:nil="true" put into the element, even though I have not put it there. $monitorOrder->add_elem(name=>'MonitorSite', attributes=>{ 'siteId'=>"330" }) ; expecting <MonitorSite siteId="330"/> I get <MonitorSite xsi:nil="true" siteId="330"/> I cannot attribute the reason that this is getting created in this manner, any hints, suggestions? the nil is causing issues and I need to ensure they are not interjected. Jim /////////////////////////////// Jim Langston Technical Consultant jam...@co... The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it. |
From: Twitter
<twitter-invite-soaplite-devel=<lis...@po...> - 2009-10-11 04:48:30
|
To find out more about Twitter, visit the link below: http://twitter.com/i/a68889b3689d12e8fab801b808f8e453aad0a873 Thanks, -The Twitter Team About Twitter Twitter is for discovering and sharing what’s happening right now through the timely exchange of short, public messages. Since its inception in 2007, this open exchange of information has transformed Twitter from a simple social utility to a new kind of communication with the potential for positive global impact. Individuals and organizations alike are encouraged to try Twitter for a variety of uses ranging from social to commercial. This message was sent by a Twitter user who entered your email address. If you'd prefer not to receive emails when other people invite you to Twitter, click here: http://twitter.com/i/o?c=IuWlXQu16GKJwHLhF1a7ynjNZaSoJZsC%2B1inYdc9gyt%2ByY4H4WN%2BBQ%3D%3D |
From: Twitter
<twitter-invite-soaplite-devel=<lis...@po...> - 2009-10-11 04:47:38
|
To find out more about Twitter, visit the link below: http://twitter.com/i/5a2c24c3f8b7276db0c901de76032e661efbf89b Thanks, -The Twitter Team About Twitter Twitter is for discovering and sharing what’s happening right now through the timely exchange of short, public messages. Since its inception in 2007, this open exchange of information has transformed Twitter from a simple social utility to a new kind of communication with the potential for positive global impact. Individuals and organizations alike are encouraged to try Twitter for a variety of uses ranging from social to commercial. This message was sent by a Twitter user who entered your email address. If you'd prefer not to receive emails when other people invite you to Twitter, click here: http://twitter.com/i/o?c=IuWlXQu16GKJwHLhF1a7ynjNZaSoJZsC%2B1inYdc9gyt%2ByY4H4WN%2BBQ%3D%3D |
From: Martin K. <mar...@fe...> - 2009-04-29 16:52:20
|
Hi, I haven't seen this behavior yet, but I'd sure be interested in a fix ;-). To narrow down the scope, you could try XML::Parser::Lite as XML parser backend - if the memory leak disappears, it's a XML::Parser issue. Regards, Martin Am Montag, den 27.04.2009, 15:20 +0200 schrieb Levente Tamas: > Hi, > > yesterday we discovered a problem using soap::lite, namely on 64bit > Fedora 10 it is leaking memory about 100bytes/request, however it is > working perfectly on 32bit Fedora 10. I installed the latest from CPAN. > The problem is now narrowed down to the requests made with ->result at > the end, letting the module handle the deserialization of the packet. I > checked it by using a simple test pinging a pokersource network several > times a second for a while. > Once I initialize the object with outputxml('true'), the leak is gone, > but naturally I can't call ->result on the returning string. > > did anyone noticed the same problem? > The worst part is that even if I destroy our object that has the > soap::lite reference, the memory doesn't get cleaned up, so I think it > points a little out of perl's range. I suspect a bug somewhere in the > XML parser. > > Any idea? > Levente > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensign option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ Soaplite-devel mailing list Soa...@li... https://lists.sourceforge.net/lists/listinfo/soaplite-devel |
From: Levente T. <le...@ta...> - 2009-04-27 14:21:17
|
Hi, yesterday we discovered a problem using soap::lite, namely on 64bit Fedora 10 it is leaking memory about 100bytes/request, however it is working perfectly on 32bit Fedora 10. I installed the latest from CPAN. The problem is now narrowed down to the requests made with ->result at the end, letting the module handle the deserialization of the packet. I checked it by using a simple test pinging a pokersource network several times a second for a while. Once I initialize the object with outputxml('true'), the leak is gone, but naturally I can't call ->result on the returning string. did anyone noticed the same problem? The worst part is that even if I destroy our object that has the soap::lite reference, the memory doesn't get cleaned up, so I think it points a little out of perl's range. I suspect a bug somewhere in the XML parser. Any idea? Levente |
From: Elmir J. <elm...@ax...> - 2009-04-16 13:22:08
|
Hi I wonder what the status of SOAP 1.2 and WS-Addressing support is in SOAP::Lite for implementing servers? Are there any known issues or missing parts in the implementation? I'm trying to write a soap 1.2 server, daemon style, that will consume WS-BaseNotification Notification requests but I have encountered a couple of issues: - Content-Type: application/soap+xml does not seem to be accepted by SOAP::Lite daemon - WS-Addressing 'Action' and 'To' header elements are not recognized. A Notification request looks something like this: POST /test_event_consumer HTTP/1.1 Host: X.X.X.X:XXX User-Agent: gSOAP/2.7 Content-Type: application/soap+xml; charset=utf-8 Content-Length: XXX Connection: close SOAPAction: "http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify" <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"> <SOAP-ENV:Header> <wsa5:To SOAP-ENV:mustUnderstand="true">http://X.X.X.X:XXX/test_event_consumer</wsa5:To> <wsa5:Action SOAP-ENV:mustUnderstand="true"> http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify </wsa5:Action> </SOAP-ENV:Header> <SOAP-ENV:Body> <wsnt:NotificationMessage> <wsnt:Message>Notificaton message contents</wsnt:Message> </wsnt:NotificationMessage> </SOAP-ENV:Body> </SOAP-ENV:Envelope> The SOAP::Lite server will reply with a 'Content-Type must be 'text/xml,' 'multipart/*,' or 'application/dime' instead of 'application/soap+xml'' fault message. If I hack around this error message by modifiying HTTP.pm to accept application/soap+xml, I'll get a fault reply complaining about not recognized WS-Addressing element 'To'. Here is the code for the daemon to consume Notification requests: #!/usr/bin/perl -w use SOAP::Lite; use SOAP::Transport::HTTP; use SOAP::Lite::Deserializer::XMLSchemaSOAP1_2; use Foo; SOAP::Lite->soapversion(1.2); my $daemon = SOAP::Transport::HTTP::Daemon -> new (LocalPort => 5432) -> dispatch_to('Foo'); print "Contact to SOAP server at ", $daemon->url, "\n"; print $daemon->handle(); Best regards, Elmir Jagudin |
From: Christoph J. <nua...@we...> - 2009-03-31 12:10:29
|
Hi, are there any plans to fix the XML-RPC invalid fault code bug (ID: 2126937) in the near future? This would be really helpful as it gets in the way in Bugzilla Webservice installations e.g. In the end it should not be too hard as the invalid usage of SOAP::Lite string fault constants in XMLRPC::Lite seems to be the cause. Thx, Chris |
From: Robert L. <Rob...@co...> - 2009-02-17 16:31:13
|
Try this... my $header = SOAP::Header->name('web:APICredentials') ->value(\SOAP::Header->value( SOAP::Header->name('web:DeveloperKey') ->value('XXXX'), SOAP::Header->name('web:Password') ->value('XXXX') ) ); my $ca = SOAP::Lite->new( service => 'channel_advisor.wsdl', proxy => 'https://api.channeladvisor.com/ChannelAdvisorAPI/v1/ShippingService.asmx', ); $ca->uri('http://api.channeladvisor.com/webservices'); $ca->call('Ping' => $header); if($ca->fault) { print "SOAP fault: ".$ca->faultstring; } else { print $ca->result; } Egor Shipovalov wrote: > Hi everyone! > > I'm trying to get SOAP::Lite to generate proper XML to connect to > channeladvisor.com SOAP interface which is known to be written in .NET > In the simplest case (a ping request) what I'm aiming to get is this: > > <soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:web="http://api.channeladvisor.com/webservices/"> > <soapenv:Header> > <web:APICredentials> > <web:DeveloperKey>XXXX</web:DeveloperKey> > <web:Password>XXX</web:Password> > </web:APICredentials> > </soapenv:Header> > <soapenv:Body> > <web:Ping/> > </soapenv:Body> > </soapenv:Envelope> > > And here's what SOAP::Lite generates: > > <?xml version="1.0" encoding="UTF-8"?> > <soap:Envelope > 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:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > <soap:Body> > <Ping xmlns="http://api.channeladvisor.com/webservices" > xsi:nil="true" /> > </soap:Body> > </soap:Envelope> > > My code is as as follows: > > my $ca = SOAP::Lite->new( > service => 'channel_advisor.wsdl', > proxy => > 'https://api.channeladvisor.com/ChannelAdvisorAPI/v1/ShippingService.asmx', > ); > > $ca->uri('http://api.channeladvisor.com/webservices'); > $ca->on_action(sub { join '/', @_ }); # setup SOAPaction header for .NET > > Best regards, > Egor Shipovalov. > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise > -Strategies to boost innovation and cut costs with open source participation > -Receive a $600 discount off the registration fee with the source code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > Soaplite-devel mailing list > Soa...@li... > https://lists.sourceforge.net/lists/listinfo/soaplite-devel > |
From: Egor S. <soa...@sh...> - 2009-02-16 15:10:32
|
Hi everyone! I'm trying to get SOAP::Lite to generate proper XML to connect to channeladvisor.com SOAP interface which is known to be written in .NET In the simplest case (a ping request) what I'm aiming to get is this: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://api.channeladvisor.com/webservices/"> <soapenv:Header> <web:APICredentials> <web:DeveloperKey>XXXX</web:DeveloperKey> <web:Password>XXX</web:Password> </web:APICredentials> </soapenv:Header> <soapenv:Body> <web:Ping/> </soapenv:Body> </soapenv:Envelope> And here's what SOAP::Lite generates: <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope 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:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <Ping xmlns="http://api.channeladvisor.com/webservices" xsi:nil="true" /> </soap:Body> </soap:Envelope> My code is as as follows: my $ca = SOAP::Lite->new( service => 'channel_advisor.wsdl', proxy => 'https://api.channeladvisor.com/ChannelAdvisorAPI/v1/ShippingService.asmx', ); $ca->uri('http://api.channeladvisor.com/webservices'); $ca->on_action(sub { join '/', @_ }); # setup SOAPaction header for .NET Best regards, Egor Shipovalov. |
From: Robert L. <Rob...@co...> - 2008-12-18 20:12:11
|
Umm... Okay, so you're saying that it's not being sent, but you aren't calling the method... $plz->call('q0:updatePLZInformationen',...args...); OR... $plz->updatePLZInformation(...args...); Pass your SOAP::Data structure you created and you should be all set. Good luck, Rob Thorsten Harms wrote: > Hi all, > > I'm still encountering problems... > Here's my actual test script: > > #!/usr/bin/perl -w > use SOAP::Lite +trace => 'debug'; > > my $plz = SOAP::Lite > ->service('file:/path/to/Service.wsdl') > ->proxy("http://1.2.3.4:8080/path/to/service"); > > my $serializer = $plz->serializer(); > > $serializer->register_ns("http://foo.bar.de","q0 > <http://foo.bar.de%22,%22q0>"); > $serializer->register_ns("http://foo.bar.de","q1 > <http://foo.bar.de%22,%22q1>"); > > print($serializer->envelope( > method => 'q0:updatePLZInformationen', > SOAP::Data->type("xsd:string")->name("q0:clientid" => "ska" ), > SOAP::Data->type("xsd:string")->name("q0:securitytoken" => "ska" ), > SOAP::Data->type("tns2:PLZInfo")->name("q0:plzinfos")->value( > \SOAP::Data->value( > SOAP::Data->type("xsd:string")->name("q1:kurzname")->value("gargel"), > SOAP::Data->type("xsd:string")->name("q1:plz")->value("54321"), > SOAP::Data->type("xsd:string")->name("q1:stadt")->value("Gnarz"), > SOAP::Data->type("xsd:string")->name("q1:status")->value("0815"), > SOAP::Data->type("xsd:string")->name("q1:typ")->value("2"), > SOAP::Data->type("xsd:string")->name("q1:zusatz")->value("vorne > links") > ) > ) > )); > > But it seems, that the data never gets send... > > If I paste the dropped-out SOAP-message into soapUI and send it to the > server, all is fine. > > Sorry for probably asking stupid questions, but this is my first > soap-lite project. > > Thanks in advance, > > Thorsten > > ------------------------------------------------------------------------ > *Von:* Thorsten Harms [mailto:tho...@ar...] > *Gesendet:* Fr 12.12.2008 09:31 > *An:* soa...@li... > *Betreff:* Re: [Soaplite-devel] Problems with SOAP::Lite client > > Hi Rob, > > that didn't work out either, but I got an example from the perlmonks > yesterday: > > #!/usr/bin/perl -- > > use strict; > use warnings; > > use SOAP::Lite; > use SOAP::Lite 0.65 +trace => 'debug'; > > > > my $soap = SOAP::Lite->proxy( 'http://localhost/blah/DummyService' ); > > my $serializer = $soap->serializer(); > > print $serializer->envelope( > method => 'updatePLZInformationen', > > SOAP::Data->type("xsd:string")->name( "clientid" => "test" ), > SOAP::Data->type("xsd:string")->name( "securitytoken" => "test" ), > SOAP::Data->type("tns2:PLZInfo")->name("plzinfos")->value( > \SOAP::Data->value( > SOAP::Data->name("kurzname")->type("xsd:string")->value("gargel"), > SOAP::Data->name("plz")->type("xsd:string")->value("12345"), > SOAP::Data->name("stadt")->type("xsd:string")->value("Musterstadt"), > SOAP::Data->name("status")->type("xsd:string")->value("0815"), > SOAP::Data->name("typ")->type("xsd:string")->value("2"), > SOAP::Data->name("zusatz")->type("xsd:string")->value("hinten rechts") > ) > ) > ); > I'm following this trace right now. The SOAP-message looks promising: > <?xml version="1.0" encoding="UTF-8"?> > <soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <soap:Body> > <updatePLZInformationen> > <clientid xsi:type="xsd:string">test</clientid> > <securitytoken xsi:type="xsd:string">test</securitytoken> > <plzinfos xsi:type="tns2:PLZInfo"> > <kurzname xsi:type="xsd:string">gargel</kurzname> > <plz xsi:type="xsd:string">12345</plz> > <stadt xsi:type="xsd:string">Musterstadt</stadt> > <status xsi:type="xsd:string">0815</status> > <typ xsi:type="xsd:string">2</typ> > <zusatz xsi:type="xsd:string">hinten rechts</zusatz> > </plzinfos> > </updatePLZInformationen> > </soap:Body> > </soap:Envelope> > Regards, > > Thorsten > > ------------------------------------------------------------------------ > *Von:* Robert Landrum [mailto:Rob...@co...] > *Gesendet:* Do 11.12.2008 18:24 > *An:* Thorsten Harms > *Cc:* soa...@li... > *Betreff:* Re: [Soaplite-devel] Problems with SOAP::Lite client > > Have you tried \@data? That probably won't work. > > @data = map { SOAP::Data->value($_) } @data; > > Try that... > > Rob > > > Thorsten Harms wrote: > > Hi Frederic, > > > > thanks for the hint, but unfortunately it doesn't work... > > > > The Tivoli Data Integrator (ITDI) still doesn't recognize the array. > > The guy who developed the service of the ITDI said, it must receive an > > array of PLZInfos. But he is all into java and autogenerated code, so > > he is not much of a help... > > > > I'm runnin' a little short on ideas (and time...) right now. :-( > > > > Bye, > > > > Thorsten > > > > ------------------------------------------------------------------------ > > *Von:* Frédéric Solvignon [mailto:Fre...@lo...] > > *Gesendet:* Mi 10.12.2008 16:35 > > *An:* Thorsten Harms > > *Betreff:* RE: [Soaplite-devel] Problems with SOAP::Lite client > > > > Hi, > > > > Try this : > > > > SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => > > \SOAP::Data->value(@data) )); > > > > > > > > > > > > *De :* Thorsten Harms [mailto:tho...@ar...] > > *Envoyé :* mercredi 10 décembre 2008 16:12 > > *À :* soa...@li... > > *Objet :* [Soaplite-devel] Problems with SOAP::Lite client > > > > > > > > Hi, > > > > > > > > I'm currently writing a client using SOAP::Lite, that connects to an > > IBM Tivoli Data Integrator. > > > > > > > > Here are some excerpts from the wsdl-file: > > > > ... > > <element name="updatePLZInformationen"> > > <complexType> > > <sequence> > > <element name="clientid" nillable="true" > > type="xsd:string" /> > > <element name="securitytoken" nillable="true" > > type="xsd:string" /> > > <element maxOccurs="unbounded" minOccurs="0" > > name="plzinfos" type="tns2:PLZInfo" /> > > </sequence> > > </complexType> > > </element> > > ... > > <complexType name="PLZInfo"> > > <sequence> > > <element name="kurzname" nillable="true" > > type="xsd:string" /> > > <element name="plz" nillable="true" > > type="xsd:string" /> > > <element name="stadt" nillable="true" > > type="xsd:string" /> > > <element name="status" nillable="true" > > type="xsd:string" /> > > <element name="typ" nillable="true" > > type="xsd:string" /> > > <element name="zusatz" nillable="true" > > type="xsd:string" /> > > </sequence> > > </complexType> > > ... > > > > > > > > And here is my code: > > > > ... > > while(...) { > > # Hash zusammenbasteln > > $hash{"kurzname"} = $kurzname; > > $hash{"plz"} = $plz; > > $hash{"stadt"} = $stadt; > > $hash{"status"} = $status; > > $hash{"typ"} = $typ; > > $hash{"zusatz"} = $zusatz; > > > > push(@ary,%hash); > > } > > > > eval { > > $dss->updatePLZInformationen(@ary); > > }; > > ... > > sub updatePLZInformationen() { > > my @data = shift(); > > > > my $plz = SOAP::Lite > > -> service('file:/path/Service.wsdl'); > > > > > $plz->updatePLZInformationen(SOAP::Data->type("xsd:string")->name("clientid" > > => "foo")->value, > > SOAP::Data->type("xsd:string")->name("securitytoken" => > > "bar")->value, > > SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => @data)); > > } > > > > My problem is, that the last argument ("plzinfos") does not seem to be > > correct, because the ITDI does not recognize it as an array. > > > > > > > > Any hints, tipps, etc. would be highly appreciated :-) > > > > > > > > Thanks in advance, > > > > > > > > Thorsten > > > > ------------------------------------------------------------------------ > > > > > ------------------------------------------------------------------------------ > > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, > Nevada. > > The future of the web can't happen without you. Join us at MIX09 to > help > > pave the way to the Next Web now. Learn more and register at > > > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Soaplite-devel mailing list > > Soa...@li... > > https://lists.sourceforge.net/lists/listinfo/soaplite-devel > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > ------------------------------------------------------------------------ > > _______________________________________________ > Soaplite-devel mailing list > Soa...@li... > https://lists.sourceforge.net/lists/listinfo/soaplite-devel > |
From: Thorsten H. <tho...@ar...> - 2008-12-16 08:22:19
|
Hi all, I'm still encountering problems... Here's my actual test script: #!/usr/bin/perl -w use SOAP::Lite +trace => 'debug'; my $plz = SOAP::Lite ->service('file:/path/to/Service.wsdl') ->proxy("http://1.2.3.4:8080/path/to/service"); my $serializer = $plz->serializer(); $serializer->register_ns("http://foo.bar.de","q0"); $serializer->register_ns("http://foo.bar.de","q1"); print($serializer->envelope( method => 'q0:updatePLZInformationen', SOAP::Data->type("xsd:string")->name("q0:clientid" => "ska" ), SOAP::Data->type("xsd:string")->name("q0:securitytoken" => "ska" ), SOAP::Data->type("tns2:PLZInfo")->name("q0:plzinfos")->value( \SOAP::Data->value( SOAP::Data->type("xsd:string")->name("q1:kurzname")->value("gargel"), SOAP::Data->type("xsd:string")->name("q1:plz")->value("54321"), SOAP::Data->type("xsd:string")->name("q1:stadt")->value("Gnarz"), SOAP::Data->type("xsd:string")->name("q1:status")->value("0815"), SOAP::Data->type("xsd:string")->name("q1:typ")->value("2"), SOAP::Data->type("xsd:string")->name("q1:zusatz")->value("vorne links") ) ) )); But it seems, that the data never gets send... If I paste the dropped-out SOAP-message into soapUI and send it to the server, all is fine. Sorry for probably asking stupid questions, but this is my first soap-lite project. Thanks in advance, Thorsten ________________________________ Von: Thorsten Harms [mailto:tho...@ar...] Gesendet: Fr 12.12.2008 09:31 An: soa...@li... Betreff: Re: [Soaplite-devel] Problems with SOAP::Lite client Hi Rob, that didn't work out either, but I got an example from the perlmonks yesterday: #!/usr/bin/perl -- use strict; use warnings; use SOAP::Lite; use SOAP::Lite 0.65 +trace => 'debug'; my $soap = SOAP::Lite->proxy( 'http://localhost/blah/DummyService' ); my $serializer = $soap->serializer(); print $serializer->envelope( method => 'updatePLZInformationen', SOAP::Data->type("xsd:string")->name( "clientid" => "test" ), SOAP::Data->type("xsd:string")->name( "securitytoken" => "test" ), SOAP::Data->type("tns2:PLZInfo")->name("plzinfos")->value( \SOAP::Data->value( SOAP::Data->name("kurzname")->type("xsd:string")->value("gargel"), SOAP::Data->name("plz")->type("xsd:string")->value("12345"), SOAP::Data->name("stadt")->type("xsd:string")->value("Musterstadt"), SOAP::Data->name("status")->type("xsd:string")->value("0815"), SOAP::Data->name("typ")->type("xsd:string")->value("2"), SOAP::Data->name("zusatz")->type("xsd:string")->value("hinten rechts") ) ) ); I'm following this trace right now. The SOAP-message looks promising: <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap:Body> <updatePLZInformationen> <clientid xsi:type="xsd:string">test</clientid> <securitytoken xsi:type="xsd:string">test</securitytoken> <plzinfos xsi:type="tns2:PLZInfo"> <kurzname xsi:type="xsd:string">gargel</kurzname> <plz xsi:type="xsd:string">12345</plz> <stadt xsi:type="xsd:string">Musterstadt</stadt> <status xsi:type="xsd:string">0815</status> <typ xsi:type="xsd:string">2</typ> <zusatz xsi:type="xsd:string">hinten rechts</zusatz> </plzinfos> </updatePLZInformationen> </soap:Body> </soap:Envelope> Regards, Thorsten ________________________________ Von: Robert Landrum [mailto:Rob...@co...] Gesendet: Do 11.12.2008 18:24 An: Thorsten Harms Cc: soa...@li... Betreff: Re: [Soaplite-devel] Problems with SOAP::Lite client Have you tried \@data? That probably won't work. @data = map { SOAP::Data->value($_) } @data; Try that... Rob Thorsten Harms wrote: > Hi Frederic, > > thanks for the hint, but unfortunately it doesn't work... > > The Tivoli Data Integrator (ITDI) still doesn't recognize the array. > The guy who developed the service of the ITDI said, it must receive an > array of PLZInfos. But he is all into java and autogenerated code, so > he is not much of a help... > > I'm runnin' a little short on ideas (and time...) right now. :-( > > Bye, > > Thorsten > > ------------------------------------------------------------------------ > *Von:* Frédéric Solvignon [mailto:Fre...@lo...] > *Gesendet:* Mi 10.12.2008 16:35 > *An:* Thorsten Harms > *Betreff:* RE: [Soaplite-devel] Problems with SOAP::Lite client > > Hi, > > Try this : > > SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => > \SOAP::Data->value(@data) )); > > > > > > *De :* Thorsten Harms [mailto:tho...@ar...] > *Envoyé :* mercredi 10 décembre 2008 16:12 > *À :* soa...@li... > *Objet :* [Soaplite-devel] Problems with SOAP::Lite client > > > > Hi, > > > > I'm currently writing a client using SOAP::Lite, that connects to an > IBM Tivoli Data Integrator. > > > > Here are some excerpts from the wsdl-file: > > ... > <element name="updatePLZInformationen"> > <complexType> > <sequence> > <element name="clientid" nillable="true" > type="xsd:string" /> > <element name="securitytoken" nillable="true" > type="xsd:string" /> > <element maxOccurs="unbounded" minOccurs="0" > name="plzinfos" type="tns2:PLZInfo" /> > </sequence> > </complexType> > </element> > ... > <complexType name="PLZInfo"> > <sequence> > <element name="kurzname" nillable="true" > type="xsd:string" /> > <element name="plz" nillable="true" > type="xsd:string" /> > <element name="stadt" nillable="true" > type="xsd:string" /> > <element name="status" nillable="true" > type="xsd:string" /> > <element name="typ" nillable="true" > type="xsd:string" /> > <element name="zusatz" nillable="true" > type="xsd:string" /> > </sequence> > </complexType> > ... > > > > And here is my code: > > ... > while(...) { > # Hash zusammenbasteln > $hash{"kurzname"} = $kurzname; > $hash{"plz"} = $plz; > $hash{"stadt"} = $stadt; > $hash{"status"} = $status; > $hash{"typ"} = $typ; > $hash{"zusatz"} = $zusatz; > > push(@ary,%hash); > } > > eval { > $dss->updatePLZInformationen(@ary); > }; > ... > sub updatePLZInformationen() { > my @data = shift(); > > my $plz = SOAP::Lite > -> service('file:/path/Service.wsdl'); > > $plz->updatePLZInformationen(SOAP::Data->type("xsd:string")->name("clientid" > => "foo")->value, > SOAP::Data->type("xsd:string")->name("securitytoken" => > "bar")->value, > SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => @data)); > } > > My problem is, that the last argument ("plzinfos") does not seem to be > correct, because the ITDI does not recognize it as an array. > > > > Any hints, tipps, etc. would be highly appreciated :-) > > > > Thanks in advance, > > > > Thorsten > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > ------------------------------------------------------------------------ > > _______________________________________________ > Soaplite-devel mailing list > Soa...@li... > https://lists.sourceforge.net/lists/listinfo/soaplite-devel > |
From: Thorsten H. <tho...@ar...> - 2008-12-12 08:40:51
|
Hi Rob, that didn't work out either, but I got an example from the perlmonks yesterday: #!/usr/bin/perl -- use strict; use warnings; use SOAP::Lite; use SOAP::Lite 0.65 +trace => 'debug'; my $soap = SOAP::Lite->proxy( 'http://localhost/blah/DummyService' ); my $serializer = $soap->serializer(); print $serializer->envelope( method => 'updatePLZInformationen', SOAP::Data->type("xsd:string")->name( "clientid" => "test" ), SOAP::Data->type("xsd:string")->name( "securitytoken" => "test" ), SOAP::Data->type("tns2:PLZInfo")->name("plzinfos")->value( \SOAP::Data->value( SOAP::Data->name("kurzname")->type("xsd:string")->value("gargel"), SOAP::Data->name("plz")->type("xsd:string")->value("12345"), SOAP::Data->name("stadt")->type("xsd:string")->value("Musterstadt"), SOAP::Data->name("status")->type("xsd:string")->value("0815"), SOAP::Data->name("typ")->type("xsd:string")->value("2"), SOAP::Data->name("zusatz")->type("xsd:string")->value("hinten rechts") ) ) ); I'm following this trace right now. The SOAP-message looks promising: <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap:Body> <updatePLZInformationen> <clientid xsi:type="xsd:string">test</clientid> <securitytoken xsi:type="xsd:string">test</securitytoken> <plzinfos xsi:type="tns2:PLZInfo"> <kurzname xsi:type="xsd:string">gargel</kurzname> <plz xsi:type="xsd:string">12345</plz> <stadt xsi:type="xsd:string">Musterstadt</stadt> <status xsi:type="xsd:string">0815</status> <typ xsi:type="xsd:string">2</typ> <zusatz xsi:type="xsd:string">hinten rechts</zusatz> </plzinfos> </updatePLZInformationen> </soap:Body> </soap:Envelope> Regards, Thorsten ________________________________ Von: Robert Landrum [mailto:Rob...@co...] Gesendet: Do 11.12.2008 18:24 An: Thorsten Harms Cc: soa...@li... Betreff: Re: [Soaplite-devel] Problems with SOAP::Lite client Have you tried \@data? That probably won't work. @data = map { SOAP::Data->value($_) } @data; Try that... Rob Thorsten Harms wrote: > Hi Frederic, > > thanks for the hint, but unfortunately it doesn't work... > > The Tivoli Data Integrator (ITDI) still doesn't recognize the array. > The guy who developed the service of the ITDI said, it must receive an > array of PLZInfos. But he is all into java and autogenerated code, so > he is not much of a help... > > I'm runnin' a little short on ideas (and time...) right now. :-( > > Bye, > > Thorsten > > ------------------------------------------------------------------------ > *Von:* Frédéric Solvignon [mailto:Fre...@lo...] > *Gesendet:* Mi 10.12.2008 16:35 > *An:* Thorsten Harms > *Betreff:* RE: [Soaplite-devel] Problems with SOAP::Lite client > > Hi, > > Try this : > > SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => > \SOAP::Data->value(@data) )); > > > > > > *De :* Thorsten Harms [mailto:tho...@ar...] > *Envoyé :* mercredi 10 décembre 2008 16:12 > *À :* soa...@li... > *Objet :* [Soaplite-devel] Problems with SOAP::Lite client > > > > Hi, > > > > I'm currently writing a client using SOAP::Lite, that connects to an > IBM Tivoli Data Integrator. > > > > Here are some excerpts from the wsdl-file: > > ... > <element name="updatePLZInformationen"> > <complexType> > <sequence> > <element name="clientid" nillable="true" > type="xsd:string" /> > <element name="securitytoken" nillable="true" > type="xsd:string" /> > <element maxOccurs="unbounded" minOccurs="0" > name="plzinfos" type="tns2:PLZInfo" /> > </sequence> > </complexType> > </element> > ... > <complexType name="PLZInfo"> > <sequence> > <element name="kurzname" nillable="true" > type="xsd:string" /> > <element name="plz" nillable="true" > type="xsd:string" /> > <element name="stadt" nillable="true" > type="xsd:string" /> > <element name="status" nillable="true" > type="xsd:string" /> > <element name="typ" nillable="true" > type="xsd:string" /> > <element name="zusatz" nillable="true" > type="xsd:string" /> > </sequence> > </complexType> > ... > > > > And here is my code: > > ... > while(...) { > # Hash zusammenbasteln > $hash{"kurzname"} = $kurzname; > $hash{"plz"} = $plz; > $hash{"stadt"} = $stadt; > $hash{"status"} = $status; > $hash{"typ"} = $typ; > $hash{"zusatz"} = $zusatz; > > push(@ary,%hash); > } > > eval { > $dss->updatePLZInformationen(@ary); > }; > ... > sub updatePLZInformationen() { > my @data = shift(); > > my $plz = SOAP::Lite > -> service('file:/path/Service.wsdl'); > > $plz->updatePLZInformationen(SOAP::Data->type("xsd:string")->name("clientid" > => "foo")->value, > SOAP::Data->type("xsd:string")->name("securitytoken" => > "bar")->value, > SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => @data)); > } > > My problem is, that the last argument ("plzinfos") does not seem to be > correct, because the ITDI does not recognize it as an array. > > > > Any hints, tipps, etc. would be highly appreciated :-) > > > > Thanks in advance, > > > > Thorsten > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > ------------------------------------------------------------------------ > > _______________________________________________ > Soaplite-devel mailing list > Soa...@li... > https://lists.sourceforge.net/lists/listinfo/soaplite-devel > |
From: Robert L. <Rob...@co...> - 2008-12-11 18:48:00
|
Have you tried \@data? That probably won't work. @data = map { SOAP::Data->value($_) } @data; Try that... Rob Thorsten Harms wrote: > Hi Frederic, > > thanks for the hint, but unfortunately it doesn't work... > > The Tivoli Data Integrator (ITDI) still doesn't recognize the array. > The guy who developed the service of the ITDI said, it must receive an > array of PLZInfos. But he is all into java and autogenerated code, so > he is not much of a help... > > I'm runnin' a little short on ideas (and time...) right now. :-( > > Bye, > > Thorsten > > ------------------------------------------------------------------------ > *Von:* Frédéric Solvignon [mailto:Fre...@lo...] > *Gesendet:* Mi 10.12.2008 16:35 > *An:* Thorsten Harms > *Betreff:* RE: [Soaplite-devel] Problems with SOAP::Lite client > > Hi, > > Try this : > > SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => > \SOAP::Data->value(@data) )); > > > > > > *De :* Thorsten Harms [mailto:tho...@ar...] > *Envoyé :* mercredi 10 décembre 2008 16:12 > *À :* soa...@li... > *Objet :* [Soaplite-devel] Problems with SOAP::Lite client > > > > Hi, > > > > I'm currently writing a client using SOAP::Lite, that connects to an > IBM Tivoli Data Integrator. > > > > Here are some excerpts from the wsdl-file: > > ... > <element name="updatePLZInformationen"> > <complexType> > <sequence> > <element name="clientid" nillable="true" > type="xsd:string" /> > <element name="securitytoken" nillable="true" > type="xsd:string" /> > <element maxOccurs="unbounded" minOccurs="0" > name="plzinfos" type="tns2:PLZInfo" /> > </sequence> > </complexType> > </element> > ... > <complexType name="PLZInfo"> > <sequence> > <element name="kurzname" nillable="true" > type="xsd:string" /> > <element name="plz" nillable="true" > type="xsd:string" /> > <element name="stadt" nillable="true" > type="xsd:string" /> > <element name="status" nillable="true" > type="xsd:string" /> > <element name="typ" nillable="true" > type="xsd:string" /> > <element name="zusatz" nillable="true" > type="xsd:string" /> > </sequence> > </complexType> > ... > > > > And here is my code: > > ... > while(...) { > # Hash zusammenbasteln > $hash{"kurzname"} = $kurzname; > $hash{"plz"} = $plz; > $hash{"stadt"} = $stadt; > $hash{"status"} = $status; > $hash{"typ"} = $typ; > $hash{"zusatz"} = $zusatz; > > push(@ary,%hash); > } > > eval { > $dss->updatePLZInformationen(@ary); > }; > ... > sub updatePLZInformationen() { > my @data = shift(); > > my $plz = SOAP::Lite > -> service('file:/path/Service.wsdl'); > > $plz->updatePLZInformationen(SOAP::Data->type("xsd:string")->name("clientid" > => "foo")->value, > SOAP::Data->type("xsd:string")->name("securitytoken" => > "bar")->value, > SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => @data)); > } > > My problem is, that the last argument ("plzinfos") does not seem to be > correct, because the ITDI does not recognize it as an array. > > > > Any hints, tipps, etc. would be highly appreciated :-) > > > > Thanks in advance, > > > > Thorsten > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > ------------------------------------------------------------------------ > > _______________________________________________ > Soaplite-devel mailing list > Soa...@li... > https://lists.sourceforge.net/lists/listinfo/soaplite-devel > |
From: Thorsten H. <tho...@ar...> - 2008-12-11 09:18:35
|
Hi all, I'm digging deeper into this, here is my test script: #!/usr/bin/perl -w use SOAP::Lite +trace => 'debug'; my $plz = SOAP::Lite -> service('file:/home/orca/oracle/DataSyncTool/config/SKADataService.wsdl'); $plz->updatePLZInformationen(SOAP::Data->type("xsd:string")->name("clientid" => "test")->value, SOAP::Data->type("xsd:string")->name("securitytoken" => "test")->value, SOAP::Data->type("tns2:PLZInfo")->name("plzinfos")->value( SOAP::Data->name("kurzname")->type("xsd:string")->value("gargel"), SOAP::Data->name("plz")->type("xsd:string")->value("12345"), SOAP::Data->name("stadt")->type("xsd:string")->value("Musterstadt"), SOAP::Data->name("status")->type("xsd:string")->value("0815"), SOAP::Data->name("typ")->type("xsd:string")->value("2"), SOAP::Data->name("zusatz")->type("xsd:string")->value("hinten rechts"))->value); And here is the Debug-Output of the SOAP-Message: <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns2="http://types.service.portal.bundeswehr.de" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="http://ska.service.portal.bundeswehr.de" 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:updatePLZInformationen> <clientid xsi:type="xsd:string">test</clientid> <securitytoken xsi:type="xsd:string">test</securitytoken> <plzinfos xsi:nil="true" xsi:type="tns2:PLZInfo" /> <-- here's the problem!!! <plz xsi:type="xsd:string">12345</plz> <stadt xsi:type="xsd:string">Musterstadt</stadt> <status xsi:type="xsd:string">0815</status> <typ xsi:type="xsd:string">2</typ> <zusatz xsi:type="xsd:string">hinten rechts</zusatz> </impl:updatePLZInformationen> </soap:Body> </soap:Envelope> As you can see, the complex type "plzinfos" closes before its variables and not after. What am I doing wrong here?!? Thanks in advance, Thorsten ________________________________ Von: Thorsten Harms [mailto:tho...@ar...] Gesendet: Do 11.12.2008 08:24 An: soa...@li... Betreff: Re: [Soaplite-devel] Problems with SOAP::Lite client Hi Frederic, thanks for the hint, but unfortunately it doesn't work... The Tivoli Data Integrator (ITDI) still doesn't recognize the array. The guy who developed the service of the ITDI said, it must receive an array of PLZInfos. But he is all into java and autogenerated code, so he is not much of a help... I'm runnin' a little short on ideas (and time...) right now. :-( Bye, Thorsten ________________________________ Von: Frédéric Solvignon [mailto:Fre...@lo...] Gesendet: Mi 10.12.2008 16:35 An: Thorsten Harms Betreff: RE: [Soaplite-devel] Problems with SOAP::Lite client Hi, Try this : SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => \SOAP::Data->value(@data) )); De : Thorsten Harms [mailto:tho...@ar...] Envoyé : mercredi 10 décembre 2008 16:12 À : soa...@li... Objet : [Soaplite-devel] Problems with SOAP::Lite client Hi, I'm currently writing a client using SOAP::Lite, that connects to an IBM Tivoli Data Integrator. Here are some excerpts from the wsdl-file: ... <element name="updatePLZInformationen"> <complexType> <sequence> <element name="clientid" nillable="true" type="xsd:string" /> <element name="securitytoken" nillable="true" type="xsd:string" /> <element maxOccurs="unbounded" minOccurs="0" name="plzinfos" type="tns2:PLZInfo" /> </sequence> </complexType> </element> ... <complexType name="PLZInfo"> <sequence> <element name="kurzname" nillable="true" type="xsd:string" /> <element name="plz" nillable="true" type="xsd:string" /> <element name="stadt" nillable="true" type="xsd:string" /> <element name="status" nillable="true" type="xsd:string" /> <element name="typ" nillable="true" type="xsd:string" /> <element name="zusatz" nillable="true" type="xsd:string" /> </sequence> </complexType> ... And here is my code: ... while(...) { # Hash zusammenbasteln $hash{"kurzname"} = $kurzname; $hash{"plz"} = $plz; $hash{"stadt"} = $stadt; $hash{"status"} = $status; $hash{"typ"} = $typ; $hash{"zusatz"} = $zusatz; push(@ary,%hash); } eval { $dss->updatePLZInformationen(@ary); }; ... sub updatePLZInformationen() { my @data = shift(); my $plz = SOAP::Lite -> service('file:/path/Service.wsdl'); $plz->updatePLZInformationen(SOAP::Data->type("xsd:string")->name("clientid" => "foo")->value, SOAP::Data->type("xsd:string")->name("securitytoken" => "bar")->value, SOAP::Data->type("tns2:PLZInfo")->name("plzinfos" => @data)); } My problem is, that the last argument ("plzinfos") does not seem to be correct, because the ITDI does not recognize it as an array. Any hints, tipps, etc. would be highly appreciated :-) Thanks in advance, Thorsten |