[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 brbr; var_dump($client-__getTypes()); echo brbr; 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 brbr; echo brbr; 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=somensSOAP-ENV:Bodyns1:execute/param112/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 faultcodesoapenv:Server.userException/faultcode faultstring[TeamworksException name=apos;Process: apos;HR Training Infomationapos; ProcessItem: apos;Untitled0apos; Type: apos;ITEMapos;apos;, message=apos;Internal Script error: org.mozilla.javascript.WrappedException: WrappedException of ORA-01858: a non-numeric character was found where a numeric was expected apos;, line=-1, pos=-1 nested=lt;nonegt;]/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}
RE: [PHP] SOAP Problems SOLVED!
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:[EMAIL PROTECTED] 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 brbr; var_dump($client-__getTypes()); echo brbr; 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 brbr; echo brbr; 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=somensSOAP-ENV:Bodyns1:execute/param112/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 faultcodesoapenv:Server.userException/faultcode faultstring[TeamworksException name=apos;Process: apos;HR Training Infomationapos; ProcessItem: apos;Untitled0apos; Type: apos;ITEMapos;apos;, message=apos;Internal Script error: org.mozilla.javascript.WrappedException: WrappedException of ORA-01858: a non-numeric character was found where a numeric was expected apos;, line=-1, pos=-1 nested=lt;nonegt;]/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