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...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Messages

Advanced
Messages Help
Messages 6235 - 6264 of 6629   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#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>





#6253 From: "Bryan" <rdsxfan74@...>
Date: Fri Oct 24, 2008 12:03 pm
Subject: SOAP Lite install on Perl v5.8.8 build 817 (March 20, 2006)
rdsxfan74
Send Email Send Email
 
I am trying to install SOAP-Lite 0.710.08 on Windows XP with Perl
v5.8.8 build 817 (Mar 20, 2006) and I am receiving the following error:

When running perl Makefile.PL:

Could not eval '
      package ExtUtils::MakeMake::_version;
      no strict;

      local $VERSION;
      $VERSION-undef; do {
           use version; $VERSION = qv('0.710.08');
      }; $VERSION
      ' in lib/SOAP/Lite.pm:  Can't locate version.pm in @INC (@INC
contains: D:/Perl/lib D:/Perl/site/lib .) at (eval 70) line 7, <FH>
line 22.
BEGIN failed--compilation aborted at (eval 70) line 7, <FH> line 22.
WARNING:  Setting VERSION via file 'lib/SOAP/Lite.pm' failed at
D:/Perl/lib/ExtUtils/MakeMaker.pm line 495

Note:  When I install it under Perl v5.8.8 build 824 (Sept 3, 2008),
it works successfully.  Unfortunately, the production servers are
still under Perl v5.8.8 build 817 so I cannot just switch to build 824.

Has anyone run into this problem?  If so, can it be resolved under
build 817?

Thanks

#6254 From: "Edward Kawas" <edward.kawas@...>
Date: Mon Oct 27, 2008 1:12 pm
Subject: RE: SOAP Lite install on Perl v5.8.8 build 817 (March 20, 2006)
kawas7
Send Email Send Email
 

Sounds like you might be missing http://search.cpan.org/author/JPEACOCK/version-0.76/lib/version.pod

 

Eddie

 

From: soaplite@yahoogroups.com [mailto:soaplite@yahoogroups.com] On Behalf Of Bryan
Sent: October-24-08 5:04 AM
To: soaplite@yahoogroups.com
Subject: [soaplite] SOAP Lite install on Perl v5.8.8 build 817 (March 20, 2006)

 

I am trying to install SOAP-Lite 0.710.08 on Windows XP with Perl
v5.8.8 build 817 (Mar 20, 2006) and I am receiving the following error:

When running perl Makefile.PL:

Could not eval '
package ExtUtils::MakeMake::_version;
no strict;

local $VERSION;
$VERSION-undef; do {
use version; $VERSION = qv('0.710.08');
}; $VERSION
' in lib/SOAP/Lite.pm: Can't locate version.pm in @INC (@INC
contains: D:/Perl/lib D:/Perl/site/lib .) at (eval 70) line 7, <FH>
line 22.
BEGIN failed--compilation aborted at (eval 70) line 7, <FH> line 22.
WARNING: Setting VERSION via file 'lib/SOAP/Lite.pm' failed at
D:/Perl/lib/ExtUtils/MakeMaker.pm line 495

Note: When I install it under Perl v5.8.8 build 824 (Sept 3, 2008),
it works successfully. Unfortunately, the production servers are
still under Perl v5.8.8 build 817 so I cannot just switch to build 824.

Has anyone run into this problem? If so, can it be resolved under
build 817?

Thanks


#6255 From: "duelist_thoa" <duelist_thoa@...>
Date: Wed Oct 29, 2008 11:15 am
Subject: [Help] MM7 ( SOAP and HTTP )
duelist_thoa
Send Email Send Email
 
dear all,

i have 2 case that realy need your help. but if you only answer 1 of
those care really thanks fully to you.

First case:

i want to establish the connection with my customer using MM7 (
anybody know? ), the things that i know about MM& seven is Server
Client communication whit SOAP and HTTP as protocol.
since i new in Perl and SOAP, so i really need your help.

1. the customer send me SOAP XML whit attachment ( plain/text ) to me
    and this is the example of SOAP envelope :
=======================================================================
POST http://XXX.XXX.XXX.XXX:9999 HTTP/1.1
Host: XXX.XXX.XXX.XXX:9999
customer-id:ABC1234
x-fh-Connection-ID:3
Content-Type:multipart/related; boundary="fh-mms-multipart-boundary-0";
type="text/xml"; start="<cid-999999000000@5>"
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope
xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/soapenvelope.
xsd">
<soap-env:Header>
<TransactionID
soap-env:mustUnderstand="1"
xmlns="http://www.firsthop.com/specs/MM7-extended/MM7-extended-1-3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.firsthop.com/specs/MM7-extended/MM7-
extended-1-3/MM7-extended-1-3.xsd">
fh-transaction-id-12345678909
</TransactionID>
</soap-env:Header>
<soap-env:Body>
<DeliverReq
xmlns="http://www.firsthop.com/specs/MM7-extended/MM7-extended-1-3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.firsthop.com/specs/MM7-extended/MM7-
extended-1-3/MM7-extended-1-3.xsd">
<MM7Version>5.5.0-extended</MM7Version>
<LinkedID>routerSMSNode1@cs01nfhq:57999</LinkedID>
<Sender><Number>+6283809000XXX</Number></Sender>
<Recipients><To><ShortCode>9999</ShortCode></To></Recipients>
<TimeStamp>2007-12-26T03:15:46-00:00</TimeStamp>
<Content allowAdaptations="true" href="<00005DC71A4C0019@...>"
type="SMS"/>
</DeliverReq>
</soap-env:Body>
</soap-env:Envelope>
======================================================================

    and the attachment is "Hello World".
    how can i get the value of "customer-id" "TransactionID"
    "MM7Version" "LinkedID" "Number" "ShortCode" "TimeStamp"
    and the attachment "Hello World".

2. can you explain to me about [ allowAdaptations="true" ] and how to
    replay [ soap-env:mustUnderstand="1" ] ?

Second case

Please help me to create simple ( yes, just simple will help me a lot
)Server script and client script.

and this is the situation :
1. i need a sample script to deliver SOAP envelop with the attachment
    a text string like " Hello World ".
2. i need a sample script to print out the envelope and catch the
    value in the envelope ( header and body ) and in the attachment,
    and give the response back.

once again i really thanks fully to you if you can answer my problem.
right now i still learn the Perl and SOAP.

Thx

Regards

#6256 From: "matthewlenz" <matthew@...>
Date: Mon Nov 10, 2008 7:35 pm
Subject: Looking at a new ach processor and can use either nacha or their soap interface
matthewlenz
Send Email Send Email
 
I've never done any SOAP or WSDL stuff before (although I am familiar
with various RPC standards).  I was reading through some of the
documentation for SOAP::Lite and I was wondering if someone can glance
at a WSDL url and determine if SOAP::Lite's schema functionality will
support it:

https://www.istreamdeposit.com/services/FileLoaderService0711?wsdl

From what I can tell of the service's documentation I'm going to need
to create container objects and the like.

I ran the stub generator and it didn't complain but honestly I'm just
now researching SOAP/WSDL so I'm not really even sure what I'm looking
at just yet :)

Any input on that url is much appreciated.

#6257 From: "Edward Kawas" <edward.kawas@...>
Date: Mon Nov 10, 2008 10:50 pm
Subject: RE: Looking at a new ach processor and can use either nacha or their soap interface
kawas7
Send Email Send Email
 

From what I can tell, I think that you will be fine.

 

Eddie

 

From: soaplite@yahoogroups.com [mailto:soaplite@yahoogroups.com] On Behalf Of matthewlenz
Sent: November-10-08 11:35 AM
To: soaplite@yahoogroups.com
Subject: [soaplite] Looking at a new ach processor and can use either nacha or their soap interface

 

I've never done any SOAP or WSDL stuff before (although I am familiar
with various RPC standards). I was reading through some of the
documentation for SOAP::Lite and I was wondering if someone can glance
at a WSDL url and determine if SOAP::Lite's schema functionality will
support it:

https://www.istreamdeposit.com/services/FileLoaderService0711?wsdl

From what I can tell of the service's documentation I'm going to need
to create container objects and the like.

I ran the stub generator and it didn't complain but honestly I'm just
now researching SOAP/WSDL so I'm not really even sure what I'm looking
at just yet :)

Any input on that url is much appreciated.


#6258 From: "monkiki5" <monkiki@...>
Date: Thu Nov 13, 2008 10:09 am
Subject: Complex type in method parameter
monkiki5
Send Email Send Email
 
I exposed a method using WebServices in Java (with WSDL) and I don't
know how to call from SOAP:Lite. This method have only a parameter
with this object structure:

<xs:complexType name="note">
   <xs:sequence>
     <xs:element minOccurs="0" name="date" type="xs:dateTime"/>
     <xs:element minOccurs="0" name="text" type="xs:string"/>
     <xs:element minOccurs="0" name="user" type="xs:string"/>
   </xs:sequence>
</xs:complexType>

The XML generated by SOAP:Lite is always with this parameter empty:

<?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:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tns="http://endpoint.ws.openkm.git.es/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><tns:complex><arg0
xsi:nil="true" xsi:type="tns:note" /><text
xsi:type="xsd:int">333</text><user
xsi:type="xsd:int">111</user></tns:complex></soap:Body></soap:Envelope>

#6259 From: "Bryan" <rdsxfan74@...>
Date: Mon Nov 17, 2008 3:40 pm
Subject: Calling web services without using SOAP:Lite
rdsxfan74
Send Email Send Email
 
Does anyone have any examples of how to call a web service in Perl
without using the SOAP:Lite package or any other third-party package?
I realize it may be more cumbersome, but due to restraints with our
current server environment, this is an avenue we need to explore.  Any
help would be greatly appreciated.

Thanks

#6260 From: "Tony Gravagno" <cwk6vka02@...>
Date: Mon Nov 17, 2008 10:22 pm
Subject: Re: Upgraded client, getting SOAP errors
tgravagno
Send Email Send Email
 
For anyone watching this thread, the issue was resolved for the most
part with the code that Martin provided. Just add a semi-colon to the
end of the using statement.  :)  Martin, thank you very much!

We also asked Paul Kulchenko for for-fee consultation and appreciate
his assistance as well.

#6261 From: sandeep sahane <san_in_be@...>
Date: Tue Dec 2, 2008 4:50 am
Subject: Fw: Re: SOAP::Lite query
sandeep.sahane
Send Email Send Email
 
Thanks for the information and an advice Byrne.

Dear All,
Can you please help me solve my doubts mentioned at the bottom of this mail?

Thanks,
Sandeep


--- On Mon, 1/12/08, Byrne Reese <byrne@...> wrote:
From: Byrne Reese <byrne@...>
Subject: Re: SOAP::Lite query
To: "sandeep sahane" <san_in_be@...>
Date: Monday, 1 December, 2008, 9:08 PM

Sorry, but I do not support SOAP::Lite any longer.

Please direct your question to the soaplite@yahoogroups.com mailing list.

On Dec 1, 2008, at 4:29 AM, sandeep sahane wrote:

Dear Sir,
As per my understanding of SOAP::Lite package, it is an wonderful package I have seen till the date. I went through the supports it provides and found that its the package that we are looking for our project. If you don't mind I have few queries, please find time out of your busy schedule and help me assist for the same.

Before that I would just like to mention, I am very new to web-services and object-oriented aspects of Perl. What I have done up till now is, downloaded "SOAP-Lite-0.65_3" and installed it on the machine having Windows Vista already installed along with ActivePerl.

Here are few question I have:

1. Which directory should I deploy the Perl script in to which I would like to give an access to?

2. What URL/interface/way should I use in order to access the above deployed script?


3. Do we need to start the server? if yes how to start it?

Appreciate your help.

Thanks in advance,
Sandeep S


Add more friends to your messenger and enjoy! Invite them now.



Add more friends to your messenger and enjoy! Invite them now.

#6262 From: "Tony Gravagno" <cwk6vka02@...>
Date: Tue Dec 2, 2008 6:53 am
Subject: Re: SOAP::Lite query
tgravagno
Send Email Send Email
 
--- sandeep sahane wrote:
> As per my understanding of SOAP::Lite package, it is
> an wonderful package I have seen till the date. I went
> through the supports it provides and found that its
> the package that we are looking for our project.

I hope I don't offend anyone using SOAP::Lite but I'd to offer some
personal observations.

We were asked by a client over 5 years ago to provide a SOAP::Lite
client to correspond to a SOAP::Lite service to which they needed to
connect.  My first question was "why does it need to be SOAP::Lite" and
the answer was that the SOAP::Lite server required a SOAP::Lite
client.  This sort of defeats the whole purpose of web services
compared to proprietary protocols, but the client had a need so we
satisfied it.  Observation 1: Lack of compatibility is an issue that
should have affected the choice of this tool.

The version back then was 0.55.  We were recently asked to upgrade the
client server, and long story made short, getting the latest v0.71 to
work with the existing 0.55 client was beyond my skills. Advice
provided here and by Paul Kulchenko, author of SOAP::Lite led to a
solution.

Observation 2: In 5 years the software has moved from 0.55 to 0.71,
just 16 builds, not even a "release".
Observation 3: There has never been a v1.0 release.
Observation 4: To get an issue resolved I needed to commission the guy
who wrote the software, someone who is gainfully employed and doesn't
support this software for a living.
Observation 5: Perl seems to be a dead or dying language, surpassed by
PHP, Ruby, .NET, Java, and a resurgence in JavaScript.  I lost a bet
there because I thought the winner was going to be Perl, but the world
moves on, and most Open Source software you see today is C, Java, and
PHP - not Perl.

So given these observations, and people are quite welcome to disagree
with my conclusions, I personally believe SOAP::Lite is _not_ a
suitable tool for new development.

Please don't confuse that with "dislike".  The software works for the
most part, but if it doesn't, then you're in trouble.  As mentioned
above, I've had a number of exchanges with Paul and he is very
professional and was very gracious in offering his assistance.  I have
nothing but good things to say about him and the core of the software.

But as time moves on, some commercial and open source products die, and
it looks like this is one of them.  So it's time to move on beyond them.

What are alternatives?  .NET easily supports Web Services, client and
server, in many ways.  For PHP there is NuSOAP, though there are many
issues with that too.  I recommend looking at that (SourceForge) but as
with Perl and SOAP::Lite, be prepared to get into the NuSOAP code
yourself because it looks to me like that project isn't well maintained
and the author (or the one guy who supports it now) is getting burned
out.

If you're going to do web services, do not choose Open Source Software
purely because OSS is Free - as in "no cost".  Choose OSS because you
know that you can take responsibility for building on the source and
improving the code.  Do not choose OSS, especially an old package like
SOAP::Lite if you do not have skills with Perl or web services and you
know you're going to need to rely on other people for help.  That's
asking for trouble.

Some OSS tools are high quality and have large and lively developer
teams.  With those tools you have more freedom to take without giving,
but of course you should always give where possible anyway.  The "Free"
part of OSS is not "free beer" or "free lunch", it means you are free
to see the code and improve on it.  That will take lots of your time
with SOAP::Lite.  If you have time to learn, then yes, it is also no-
cost software.  If you do not, then like myself, you should be willing
to pay people to work on the code for you.  For this package, I was
lucky that there was anyone qualified to work on the software.

So, my recommendation is to find software that you can maintain
yourself, that has a large development team who can maintain it for
you, and be prepared to pay people for their services when you get
stuck - especially with this package.

I hope that helps.

#6263 From: "dinesh_chb" <dinesh_chb@...>
Date: Sat Dec 6, 2008 5:12 am
Subject: need help to handling array in soap:lite in perl using wsdl
dinesh_chb
Send Email Send Email
 
Hi i am using wsdl the contains of it is
<complexType name="ArrayOfTarget">
         <complexContent>
         <restriction base="soapenc:Array">
                 <attribute ref="soapenc:arrayType"
wsdl:arrayType="impl:Target[]"/>
         </restriction>
         </complexContent>
  </complexType>

<complexType name="Target">
         <sequence>
                 <element name="nas-ip" nillable="true" type="xsd:string"/>
                 <element name="port" nillable="true" type="xsd:long"/>
                 <element name="secret" nillable="true" type="xsd:string"/>
         </sequence>
</complexType>

<complexType name="ArrayOfRadiusattributes">
         <complexContent>
         <restriction base="soapenc:Array">
                 <attribute ref="soapenc:arrayType"
wsdl:arrayType="impl:Radiusattributes[]"/>
         </restriction>
         </complexContent>
</complexType>

<complexType name="Radiusattributes">
         <sequence>
                 <element name="RadiusattributeName" nillable="true"
type="xsd:string"/>
                 <element name="RadiusattributeValue" nillable="true"
type="xsd:string"/>
                 <element name="RadiusattributeFormat" nillable="true"
type="xsd:long"/>
         </sequence>
</complexType>

<complexType name="ChangeProfile">
         <sequence>
                 <element name="TargetData" nillable="false"
type="impl:ArrayOfTarget"/>
                 <element name="RadiusattributesData" nillable="false"
type="impl:ArrayOfRadiusattributes"/>
                 <element name="Command" nillable="false"
type="xsd:string"/>
         </sequence>
</complexType>

<complexType name="ChangeProfileResponse">
         <sequence>
                 <element name="iResponseCode" nillable="false"
type="xsd:long"/>
         </sequence>
</complexType>
</schema>


My soap server is in c/c++,I want to send the vales of nsa-ip port to
server ,

#6264 From: "Yair Gottdenker" <yairgot@...>
Date: Mon Dec 8, 2008 11:43 pm
Subject: Exception handling
yairgot
Send Email Send Email
 
Hello all,

I am writing web service. I want to use soap lite for the client side
and for the server I am using jax-ws. I want to handle errors using
exceptions. My server side WS throws javax.xml.ws.WebServiceException.
My problem is no matter what I do, I can't catch the exception and get
the exception string out.

My client code:
#!/usr/bin/perl -w
use strict;

use SOAP::Lite
         on_fault => sub { my($soap, $res) = @_;
       die ref $res ? $res->faultdetail : $soap->transport->status, "\n";
     };

my $res = SOAP::Lite
         ->service('http://localhost:8084/casi/CWS?wsdl');

my $var = SOAP::Data->type('string');
$var->name('p1');
$var->value('my p1');

eval {
         print "before call\n";
         my $result = $client->test1($var);
         print $result. '\n';;
};
if ($@) {
         print "$@\n";
}

Any ideas?

Messages 6235 - 6264 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