nusoap No memory

php 用nusoap调用 Java 的webservice

php.ini 的内存1024M   java 1.5G

error: XML error parsing SOAP payload on line 1 :  No memory

请问这个错误怎么修改?

寻找原因

nusoap_client 类 --> function call --> function send -> class soap_transport_http

////////////

$http->send($msg,$timeout,$response_timeout,$this->cookies);    data

  $this->request = $http->outgoing_payload;

 $this->response = $http->incoming_payload;

///////////

-->nusoap_client 类中 parseResponse($data)  --> class nusoap_parser($data) ->

nusoap_parser(($xml)->  xml_parse($this->parser,$xml,true)

发现xml_parse 结果为false,发现问题。将$xml put 到文件里,文件名:xml.txt 大小10.7M


$xmlUrl = "./xml.txt";$xmlparser = xml_parser_create();

$data = file_get_contents($xmlUrl);

if(xml_parse($xmlparser, $data)){ 

   echo "1";

}else{    

  die( print "ERROR: "    . xml_get_error_code($xmlparser)    . "

"    . xml_error_string(xml_get_error_code($xmlparser))    . "

"    . "Line: "    . xml_get_current_line_number(  $xmlparser)    . "

"    . "Column: "    . xml_get_current_column_number($xmlparser)    . "

");

}


nusoap No memory_第1张图片



解决方案猜想:

1.设置xml parser 的内存 

2.修改nusoap文件:将nusoap关于解析XML的函数全部替换成其他解析方式

3.修改nusoap文件:将数据存入文件中,遍历读取数据!

4. nusoap  换成 php的soap扩展

5.Java服务器传输数据格式为json

6.减小数据量  (是最简单的,也是最没用的)


先看看xml parser 是否有关于内存的配置

nusoap No memory_第2张图片


nusoap No memory_第3张图片

然后并没有找到设置Xml parser 的内存的函数,无奈放弃!

但是2-3 实现起来太费时,决定用第四种方案!直接用php 的soap扩展取的数据。

哪位大神知道怎么设置xml parser的内存,记得留言啊。

你可能感兴趣的:(nusoap No memory)