RE: [SOAP] Re: Continued probs with .NET client consuming PHP SOA P service

From: Date: Thu, 17 Jul 2003 16:55:35 +0000
Subject: RE: [SOAP] Re: Continued probs with .NET client consuming PHP SOA P service
Groups: php.soap 
Request: Send a blank email to php-soap+get-850@lists.php.net to get a copy of this message
Btw, if that doesn't work, you can temporarily set your bools to ints as a test, if that works (and changing line 512 does not) you might want to file a bug with M$. -Javier -----Original Message----- From: Javier Muniz Sent: Thursday, July 17, 2003 9:48 AM To: 'Alok K. Dhir'; Javier Muniz; 'Dmitri Vinogradov'; soap@lists.php.net Subject: RE: [SOAP] Re: Continued probs with .NET client consuming PHP SOAP service I took a closer look at the exception and the SOAP response, and this really looks more troubling than just a problem with your WSDL. What appears to be happening is that .NET is trying to cast the string "false" to a Boolean and is failing. Try modifying line 512 of Base.php to: $xmlout_value = $value?'1':'0'; This should cause your booleans to be sent as 1 and 0 rather than true and false. With any luck .Net will be able to cast that type correctly, but it's entirely possible that this is a bug in .NET and there's nothing wrong with your WSDL. It may be possible to write your own deserializer for your StudentObject class, but I'm not sure off the top of my head how to do this. -Javier -----Original Message----- From: Alok K. Dhir [mailto:adhir@symplicity.com] Sent: Thursday, July 17, 2003 9:20 AM To: 'Javier Muniz'; 'Dmitri Vinogradov'; soap@lists.php.net Subject: RE: [SOAP] Re: Continued probs with .NET client consuming PHP SOAP service That's gone now - nice catch :) - was an uncaught artifact from development. Same problem though... The issue seems to be when the .NET server is trying to unmarshal the XML received from the SOAP server back into an object. > -----Original Message----- > From: Javier Muniz [mailto:jmuniz@granicus.com] > Sent: Thursday, July 17, 2003 12:12 PM > To: 'Alok K. Dhir'; 'Dmitri Vinogradov'; soap@lists.php.net > Subject: RE: [SOAP] Re: Continued probs with .NET client > consuming PHP SOAP service > > > Just noticed the following in your WSDL: > > <message name="createRequest"> > <part name="object" type="xsd:object" /> > <part name="mode" type="xsd:string" /> > </message> > > xsd:object? :) > > -Javier > > -----Original Message----- > From: Alok K. Dhir [mailto:adhir@symplicity.com] > Sent: Thursday, July 17, 2003 8:47 AM > To: 'Dmitri Vinogradov'; soap@lists.php.net > Subject: RE: [SOAP] Re: Continued probs with .NET client > consuming PHP SOAP > service > > > I've changed Boolean to boolean, but note that in the resulting XML, > the PEAR SOAP class has translated it already, so it's not likely > to change > anything. > > Thanks for responding. > > Al > > > -----Original Message----- > > From: Dmitri Vinogradov [mailto:dv@allyoucanthink.de] > > Sent: Thursday, July 17, 2003 11:42 AM > > To: soap@lists.php.net > > Subject: [SOAP] Re: Continued probs with .NET client consuming PHP > > SOAP service > > > > > > Hi > > Please change Boolean to boolean (lowercase) and try to run > > wsdl.exe on your document. > > > > Regards > > > > > > > > "Alok K. Dhir" <adhir@symplicity.com> schrieb im Newsbeitrag > > news:005301c34c77$a1819870$db01a8c0@rock... > > > Hey all - we're still having errors when a .NET client > > attempts to consume > > > my web service at > > http://csm-demo.symplicity.com/ws/student_api.php?wsdl. > > > > > > I've made several changes to the structure based on the > > advice of some > > list > > > members - most notably the addition of the ArrayOfStrings > > schema type and > > > associated changes to the typedef. > > > > > > The typedef, soap server xml stream, and error message are > > attached below. > > > > > > Thank you very much for any guidance. > > > > > > Al > > > > > > TYPEDEF > > > ------- > > > $this->__typedef = array( > > > 'student_id' => 'string', > > > 'school_student_id' => 'string', > > > 'fullname' => 'string', > > > 'fname' => 'string', > > > 'mi' => 'string', > > > 'lname' => 'string', > > > 'email' => 'string', > > > 'ss_number' => 'string', > > > 'gender' => 'string', > > > 'birthdate' => 'string', > > > 'permanent_street' => 'string', > > > 'permanent_city' => 'string', > > > 'permanent_state' => 'string', > > > 'permanent_zip' => 'string', > > > 'permanent_country' => 'string', > > > 'street' => 'string', > > > 'city' => 'string', > > > 'state' => 'string', > > > 'zip' => 'string', > > > 'country' => 'string', > > > 'account_disabled_flag' => 'Boolean', > > > 'account_blocked_flag' => 'Boolean', > > > 'major' => > > > '{urn:'.$this->getNameSpace().'}ArrayOfStrings', > > > 'minor' => > > > '{urn:'.$this->getNameSpace().'}ArrayOfStrings', > > > 'graduation_date' => 'string', > > > 'year' => 'string', > > > 'gpa' => 'decimal', > > > 'program_type' => 'string', > > > 'work_authorization' => 'string', > > > 'degree_level' => 'string', > > > 'receive_email_flag' => 'Boolean', > > > 'resume_book_flag' => 'Boolean', > > > 'logins' => 'decimal', > > > 'lastlogin' => 'string' > > > ); > > > > > > > > > > > > SERVER OUTPUT FROM __GETWIRE > > > ---------------------------- > > > HTTP/1.1 200 OK > > > Date: Thu, 17 Jul 2003 14:57:30 GMT > > > Server: Apache > > > X-Powered-By: PHP/4.3.2 > > > X-Accelerated-By: PHPA/1.3.3r2 > > > Set-Cookie: PHPSESSID=f564d4c6dca619f0ffbc0c71e9153e75; path=/ > > > Expires: Thu, 19 Nov 1981 08:52:00 GMT > > > Cache-Control: no-store, no-cache, must-revalidate, post-check=0, > > > pre-check=0 > > > Pragma: no-cache > > > Status: 200 OK > > > Content-Length: 2181 > > > Connection: close > > > Content-Type: text/xml; charset=UTF-8 > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > > > > <SOAP-ENV:Envelope > > > > > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > > > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > > > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > > xmlns:SOAP-ENC="ŠlvìÊ > > > `ãTz“þ ÀÅhttp://schemas.xmlsoap.org/soap/encoding/" > > > xmlns:ns4="urn:CSM_Student_API" > > > > > SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> > > > <SOAP-ENV:Body> > > > > > > <ns4:getAsObjectBySchoolIDResponse> > > > <StudentObject xsi:type="ns4:StudentObject"> > > > <student_id > > > > xsi:type="xsd:string">5eb58d1c4a183e1dec8e6cc3096939eb</student_id> > > > <fullname xsi:type="xsd:string">Paul Andrews</fullname> > > > <fname > > > xsi:type="xsd:string">Paul</fname> > > > <mi xsi:type="xsd:string">T</mi> > > > <lname xsi:type="xsd:string">Andrews</lname> > > > <email xsi:type="xsd:string">paul_andrews@bsu.edu</email> > > > <ss_number xsi:type="xsd:string"> > > > </ss_number> > > > <gender xsi:type="xsd:string"> > > > </gender> > > > <birthdate xsi:type="xsd:string"> > > > </birthdate> > > > <permanent_street xsi:type="xsd:string">1723 N Picolo > > > Avenue</permanent_street> <permanent_city > xsi:type="xsd:string">Salt > > > Lake City</permanent_city> <permanent_state > > > xsi:type="xsd:string">UT</permanent_state> > > > <permanent_zip xsi:type="xsd:string">89104</permanent_zip> > > > <permanent_country xsi:type="xsd:string">US</permanent_country> > > > <street xsi:type="xsd:string">785 Wayne Street > > > Apt. 541</street> > > > <city xsi:type="xsd:string">College Mountain</city> <state > > > xsi:type="xsd:string">CO</state> <zip > > > xsi:type="xsd:string">54789</zip> <country > > > xsi:type="xsd:string">US</country> > > > <account_disabled_flag > > > xsi:type="xsd:boolean">false</account_disabled_flag> > > > <account_blocked_flag > > > xsi:type="xsd:boolean">false</account_blocked_flag> > > > <major xsi:type="ns4:ArrayOfStrings"> > > > <item xsi:type="xsd:string">Arts &amp; Sciences</item> > > > <item > > > xsi:type="xsd:string">Addition</item> > > > </major> > > > <minor/> > > > <graduation_date/> > > > <year/> > > > <gpa/> > > > <program_type/> > > > <work_authorization/> > > > <degree_level/> > > > <receive_email_flag/> > > > <resume_book_flag/> > > > <logins xsi:type="xsd:string">11</logins> > > > <lastlogin xsi:type="xsd:string">2003-07-17 > > > 10:40:21</lastlogin> > > > </StudentObject> </ns4:getAsObjectBySchoolIDResponse> > > > </SOAP-ENV:Body> > > > </SOAP-ENV:Envelope> > > > > > > > > > ERROR MESSAGE FROM .NET CLIENT > > > ------------------------------- > > > System.InvalidOperationException: There is an error in XML > > document (33, > > > 76). ---> System.InvalidCastException: Cannot assign > object of type > > > System.Boolean to an object of type System.String. at > > > > > Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerialization > > Reader1.Re > > > ad1_StudentObject() at > > > > > System.Xml.Serialization.XmlSerializationReader.ReadReferencin > > gElement(S > > > tring name, String ns, Boolean elementCanBeType, String& > > fixupReference) > > > at > > > > > System.Xml.Serialization.XmlSerializationReader.ReadReferencin > > gElement(S > > > tring name, String ns, String& fixupReference) at > > > > > Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerialization > > Reader1.Re > > > ad8_getAsObjectBySchoolIDResponse() --- End of inner > exception stack > > > trace --- at > > > > > System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader > > xmlReader) > > > at > > > > > System.Web.Services.Protocols.SoapHttpClientProtocol.ReadRespo > > nse(SoapCl > > > ientMessage message, WebResponse response, Stream > responseStream) at > > > System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String > > > methodName, Object[] parameters) at > > > > > com.symplicity.csm_demo.CSM_Student_APIService.getAsObjectBySc > > hoolID(Str > > > ing id) in c:\inetpub\wwwroot\career\Web > > > References\com.symplicity.csm-demo\Reference.vb:line 60 at > > > webServiceTest.Page_Load(Object sender, EventArgs e) in > > > c:\inetpub\wwwroot\career\student\webServiceTest.aspx.vb:line 76 > > > > > > > > > > > -- > > PHP Soap Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > -- > PHP Soap Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- > PHP Soap Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.soap (#850) next »