newbie help!
| From: | Laura Broughton | Date: | Tue, 07 Mar 2006 22:19:35 +0000 |
| Subject: | newbie help! | ||
| Groups: | php.soap | ||
| Request: | Send a blank email to php-soap+get-2146@lists.php.net to get a copy of this message | ||
Hello
Im trying to follow an example of a stockquoting service from xmethods and not doing so well. I was
following this tutorial: http://www.zend.com/php5/articles/php5-SOAP.php?article=php5-SOAP&kind=php5&id=4560&open=1&anc=0&view=1#Heading2
where all the info and orignal documents i was working from can be found.
So far i can do that and get a value returned, but id like to extend this so i can have more
functions on the server, ive tried too do it and its all going a bit wrong! So far my server is the
same as theirs, and i have tried too add a new function to return a digest of a value held in the
array ( i havnt put the soapfault check on the new function to over complicate things as im fairly
sure the problem is with the WSDL doc, shown after):
function getQuote($symbol)
{
if (isset($this->quotes[$symbol]))
{
return $this->quotes[$symbol];
}
else
{
throw new SoapFault("Server","Unknown Symbol '$symbol'.");
}
}
function getDigest($symbol)
{
$digestanswer = $this->quotes[$symbol];
return md5($digestanswer);
}
I think the problem is with my WSDL document though, im not good at them at all, any ideas? I think
the namespaces are really confusing me, can anyone help? sorry this is a total newbie question but
ive only just started learning and i dont want too give up! My edited WSDL:
<?xml version ='1.0' encoding ='UTF-8' ?>
<definitions name='StockQuote'
targetNamespace='http://example.org/StockQuote'
xmlns:tns=' http://example.org/StockQuote '
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
xmlns='http://schemas.xmlsoap.org/wsdl/'>
<message name='getQuoteRequest'>
<part name='symbol' type='xsd:string'/>
</message>
<message name='getQuoteResponse'>
<part name='Result' type='xsd:float'/>
</message>
<message name='getDigestRequest'>
<part name='symbol' type='xsd:string'/>
</message>
<message name='getDigestResponse'>
<part name='Result' type='xsd:string'/>
</message>
<portType name='StockQuotePortType'>
<operation name='getDigest'>
<input message='tns:getDigestRequest'/>
<output message='tns:getDigestResponse'/>
</operation>
<operation name='getQuote'>
<input message='tns:getQuoteRequest'/>
<output message='tns:getQuoteResponse'/>
</operation>
</portType>
<binding name='StockQuoteBinding' type='tns:StockQuotePortType'>
<soap:binding style='rpc'transport='http://schemas.xmlsoap.org/soap/http'/>
<operation name='getQuote'>
<soap:operation soapAction='urn:xmethods-delayed-quotes#getQuote'/>
<input>
<soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
</input>
<output>
<soap:body use='encoded' namespace='urn:xmethods-delayed-quotes'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
</output>
</operation>
<operation name='getDigest'>
<soap:operation soapAction=''/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name='StockQuoteService'>
<port name='StockQuotePort' binding='StockQuoteBinding'>
<soap:address location='http://localhost/server1.php'/>
</port>
</service>
</definitions>
thanks for any help,
Laura