<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri, sans-serif" size="2">
<div>Hello,</div>
<div>I had previously a namespace problem with wsdl containing rpc style.</div>
<div>MarkOv suggested the following change to lib/XML/Compile/SOAP11/Operation.pm :</div>
<div><font face="Consolas, monospace" size="2"> </font></div>
<div><font face="Consolas, monospace" size="2">Original code :</font></div>
<div><font face="Consolas, monospace" size="2"> if($style eq 'rpc')</font></div>
<div><font face="Consolas, monospace" size="2"> { exists $body->{namespace}</font></div>
<div><font face="Consolas, monospace" size="2"> or error __x"rpc operation {name} requires namespace attribute"</font></div>
<div><font face="Consolas, monospace" size="2"> , name => $msgname;</font></div>
<div><font face="Consolas, monospace" size="2"> my $ns = $body->{namespace};</font></div>
<div><font face="Consolas, monospace" size="2"> $procedure = pack_type $ns, $opname;</font></div>
<div><font face="Consolas, monospace" size="2"> }</font></div>
<div><font face="Consolas, monospace" size="2"> </font></div>
<div><font face="Consolas, monospace" size="2">Changed code :</font></div>
<div><font face="Consolas, monospace" size="2"> if($style eq 'rpc')</font></div>
<div><font face="Consolas, monospace" size="2"> { my $ns = $body->{namespace} || '';</font></div>
<div><font face="Consolas, monospace" size="2"> $procedure = pack_type $ns, $opname;</font></div>
<div><font face="Consolas, monospace" size="2"> }</font></div>
<div> </div>
<div>, which worked very well – but lead in our case to next problem :</div>
<div>“error: sending operation requires procedure name with RPC at /usr/lib/perl5/site_perl/5.8.8/XML/Compile/SOAP.pm line 112”</div>
<div> </div>
<div>I assumed that this also could be not-so-critical error and skipped it via a small change to /usr/lib/perl5/site_perl/5.8.8/XML/Compile/SOAP.pm rows 111-117:</div>
<div> </div>
<div>Original code :</div>
<div>…</div>
<div> elsif($style eq 'rpc')</div>
<div> { my $procedure = $args{body}{procedure} </div>
<div> or error __x"sending operation requires procedure name with RPC"; </div>
<div> push @$hooks, $self->_writer_rpc_hook('SOAP-ENV:Body'</div>
<div> , $procedure, $body, $faults);</div>
<div> }</div>
<div>Changed code :</div>
<div>…</div>
<div> elsif($style eq 'rpc')</div>
<div> { my $procedure = $args{body}{procedure} || ''; ## locally added </div>
<div> ## or error __x"sending operation requires procedure name with RPC"; ## locally skipped error message</div>
<div> push @$hooks, $self->_writer_rpc_hook('SOAP-ENV:Body'</div>
<div> , $procedure, $body, $faults);</div>
<div> }</div>
<div> </div>
<div>After these changes, my WS-EVENTING test using XML::Compile gave good results !</div>
<div> </div>
<div>QUESTIONS:</div>
<div>Do you see any risk on these changes - are the changes dangerous to the other module logic ?</div>
<div>Are the above changed rpc-style tests only to make sure that the wsdl is following the standard specs ?</div>
<div> </div>
<div>BR, Tapio</div>
<div> </div>
</font>
</body>
</html>