RE: [SOAP] Re: Continued probs with .NET client consuming PHP SOA P service
| From: | Javier Muniz | 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 & 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
>
>