RE: [PHP] SOAP Problems SOLVED!
| From: | Jay Paulson \(CE CEN\) | Date: | Tue, 10 Jan 2006 18:11:54 +0000 |
| Subject: | RE: [PHP] SOAP Problems SOLVED! | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-228433@lists.php.net to get a copy of this message | ||
I got it to work! What I had to do is make an associtive array with the keys being the name of the
params that needed to get passed to the 'execute' method that it was calling via soap. Or
conversely you could write the $params as objects instead of an array.
Code below:
$params["From"] = "06/01/2005"; // also can use $params->From =
"date";
$params["to"] = "12/31/2005"; // also can use $params->to = "date";
$client = new SoapClient("some.wsdl", array("trace" => 1,
"exceptions" => 0));
try {
print($client->execute($params));
} catch (SoapFault $exception) {
echo $exception;
}
-----Original Message-----
From: Jay Paulson (CE CEN) [mailto:Jay.Paulson@wholefoods.com]
Sent: Tue 1/10/2006 11:32 AM
To: php-general@lists.php.net
Subject: [PHP] SOAP Problems.
I'm trying to call a SOAP service where you pass it a couple of dates and it is supposed to
return stuff. My testing code is below along with the errors I'm getting. What's strange
is that it's not working in php but it works perfectly in Flash. The request it is sending is
only sending one param the $to value and not the $from value. Any idea what's going on?
$from = "06/01/2005"; // some date but what format?
$to = "12/31/2005"; // some date but what format?
$client = new SoapClient("some.wsdl", array("trace" => 1,
"exceptions" => 0));
var_dump($client->__getFunctions());
echo "<br><br>";
var_dump($client->__getTypes());
echo "<br><br>";
try {
print($client->execute($from, $to));
} catch (SoapFault $exception) {
echo $exception;
}
$client->execute($from, $to);
print "<pre>\n";
print "Request :\n".htmlspecialchars($client->__getLastRequest()) ."\n";
print "Response:\n".htmlspecialchars($client->__getLastResponse())."\n";
print "</pre>";
var_dump($client->execute($from, $to));
echo "<br><br>";
echo "<br><br>";
print($client->__soapCall("execute", array("From" => $from, "to"
=> $to)));
array(1) { [0]=> string(44) "executeResponse execute(execute $parameters)" }
array(2) { [0]=> string(44) "struct execute { string From; string to; }" [1]=>
string(44) "struct executeResponse { string wsReturn; }" }
SoapFault exception: [soapenv:Server.userException] [TeamworksException name='Process: 'HR
Training Infomation' ProcessItem: 'Untitled0' Type: 'ITEM'',
message='Internal Script error: org.mozilla.javascript.WrappedException: WrappedException of
ORA-01858: a non-numeric character was found where a numeric was expected ', line=-1, pos=-1
nested=] in /Library/WebServer/Documents/services/soap-test.php:9 Stack trace: #0
/Library/WebServer/Documents/services/soap-test.php(9): SoapClient->__call('execute',
Array) #1 /Library/WebServer/Documents/services/soap-test.php(9):
SoapClient->execute('06/01/2005', '12/31/2005') #2 {main}
Request :
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="somens"><SOAP-ENV:Body><ns1:execute/><param1>12/31/2005</param1></SOAP-ENV:Body></SOAP-ENV:Envelope>
Response:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>[TeamworksException name='Process: 'HR Training
Infomation' ProcessItem: 'Untitled0' Type:
'ITEM'', message='Internal Script error:
org.mozilla.javascript.WrappedException: WrappedException of ORA-01858: a non-numeric character was
found where a numeric was expected
', line=-1, pos=-1 nested=<none>]</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
object(SoapFault)#2 (9) { ["message:protected"]=> string(0) ""
["string:private"]=> string(0) "" ["code:protected"]=> int(0)
["file:protected"]=> string(51)
"/Library/WebServer/Documents/services/soap-test.php" ["line:protected"]=>
int(16) ["trace:private"]=> array(2) { [0]=> array(6) { ["file"]=>
string(51) "/Library/WebServer/Documents/services/soap-test.php" ["line"]=>
int(16) ["function"]=> string(6) "__call" ["class"]=> string(10)
"SoapClient" ["type"]=> string(2) "->" ["args"]=>
array(2) { [0]=> string(7) "execute" [1]=> array(2) { [0]=> string(10)
"06/01/2005" [1]=> string(10) "12/31/2005" } } } [1]=> array(6) {
["file"]=> string(51) "/Library/WebServer/Documents/services/soap-test.php"
["line"]=> int(16) ["function"]=> string(7) "execute"
["class"]=> string(10) "SoapClient" ["type"]=> string(2)
"->" ["args"]=> array(2) { [0]=> string(10) "06/01/2005"
[1]=> string(10) "12/31/2005" } } } ["faultstring"]=> string(300)
"[TeamworksException name='Process: 'HR Training Infomation' ProcessItem:
'Untitled0' Type: 'ITEM'', message='Internal Script error:
org.mozilla.javascript.WrappedException: WrappedException of ORA-01858: a non-numeric character was
found where a numeric was expected ', line=-1, pos=-1 nested=]"
["faultcode"]=> string(28) "soapenv:Server.userException"
["detail"]=> string(0) "" }
SoapFault exception: [soapenv:Server.userException] [TeamworksException name='Process: 'HR
Training Infomation' ProcessItem: 'Untitled0' Type: 'ITEM'',
message='Internal Script error: org.mozilla.javascript.WrappedException: WrappedException of
ORA-01858: a non-numeric character was found where a numeric was expected ', line=-1, pos=-1
nested=] in /Library/WebServer/Documents/services/soap-test.php:17 Stack trace: #0
/Library/WebServer/Documents/services/soap-test.php(17):
SoapClient->__soapCall('execute', Array) #1 {main}