ID: 49226 Comment by: sjoerd-php at linuxonly dot nl Reported By: richard at rjharrison dot org Status: Open Bug Type: SOAP related Operating System: linux PHP Version: 5.3.0 New Comment:
Thank you for your bug report. When you retrieve the WSDL over HTTP, does the Content-Length header match the length of the WSDL? You can try saving the WSDL to disk and load that one instead. Previous Comments: ------------------------------------------------------------------------ [2009-08-12 10:52:46] stig dot woxholt at fotoknudsen dot no We have started porting our soap services from 5.2.x to 5.3 and see the same problem here. I have spend quite some time trying to identify the problem, and it seemes to me that when the wsdl reaches a certain size it stops working. Ie. i have a service with 10 exposed methods. When all these methods are exposed i get an error, same as Richards. If i cut down on the number of exposed methods, to ie. 3 on the service it works. This is services that is used in production on the 5.2.x builds, and works perfectly there. Looks to me that there might be a bug in the XML parsing of the WSDL somewhere. ------------------------------------------------------------------------ [2009-08-11 19:30:45] richard at rjharrison dot org Description: ------------ SoapServer is failing on construction. I pass an URL with *valid* WSDL xml, which is generated automatically. - If I save the WSDL locally and load from disk it works. - If I serve the WSDL remotely from a static .xml file it works. - If I load the WSDL-url in my browser I get a well-formed XML response. - I can access the dodgy-wsdl URL via file_get_contents. - Using 5.2.6 on another machine it works fine. I inspected the http requests and think it could be related to chunked encoding (it fails on the chunked encoding response). Reproduce code: --------------- <?php $url = 'http://myserver/path?wsdl'; $serv = new SoapServer($url); ?> I can probably provide a sample url privately. Expected result: ---------------- $serv to be instantiated Actual result: -------------- SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://myserver/path?wsdl' : Premature end of data in tag definitions line 2 Below are the headers of the response that fails:- Date: Tue, 11 Aug 2009 19:15:29 GMT Server: Apache/2.2.8 (Unix) DAV/2 PHP/5.3.0 X-powered-by: PHP/5.3.0 Vary: Accept-Encoding,User-Agent Connection: close Transfer-encoding: chunked Content-type: text/xml ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=49226&edit=1