服务端我这样写: server.php
客户端我这样写: client.php
打开浏览器访问客户端:client.php
出现错误:
Fatal error: Uncaught SoapFault exception: [VersionMismatch] Wrong Version in E:\webSite\htdocs\client.php:10 Stack trace: #0 [internal function]: SoapClient->__call('get', Array) #1 E:\webSite\htdocs\client.php(10): SoapClient->get() #2 {main} thrown in E:\webSite\htdocs\client.php on line 10
我在百度搜Zend_Soap_AutoDiscover,0条结果...估计过几天会多一条..就是phpchina里面我这个帖子
Zend_Soap_AutoDiscover就是为了不需要你去写那长长的wsdl文件,zend自动生成!(zend studio能自动生成...但不能动态生成, 即需求变了又要手动去搞)
大家有谁用过???搞了我整晚...都搞不出来!!!啊.......

[ 本帖最后由 wenfeng2 于 2008-9-20 22:45 编辑 ]


最新回复
但是zend studio 就可以生成WSDL
怎么办....
QUOTE:
用zf的话还用baidu???直接google英文站点或者zf论坛
英文不好就去学。。
baidu能搜出什么东西-_-#!
只有几条...都是zf论坛的帖子..但貌似没有最终结果...而且还有zf设计者的留言...说他们也没真正仔细测试过,可能会有bug, 而且有人给出了修正版, 但修正版乱七八糟, 没人敢用(2007年的帖子)
我只是强调这个问题在baidu是搜不到..没说我没去google搜..
只要是智商有点正常的人都会知道百度搜不了就去谷歌.... 莫非楼上以为人人都低智商?
楼上不要炫耀自己的英语...不要以为会的人只有你一个~
[ 本帖最后由 wenfeng2 于 2008-9-21 17:48 编辑 ]
如果你都解决不了请不要说三道四~
你的问题是搜安排返回的XML的格式错误。
你改改下面的代码,自己handle exception:
function soap_exception(){
echo "<div style='margin:100px auto; width:400px;padding:25px; font-family:arial; border:2px dotted #a00'>
<p style='color:#a00;font-size:1.4em;font-weight:600'>
Data farmet error ! <br/>
internal error number: # 401021 </p>
</div>
";
}
--------------------------------
在调soap 时
set_exception_handler(("soap_error");
$ret = $soap_obj->__call($cmd,$data_array);
restore_exception_handler();
反正返回的错误是VersionMismatch, xml格式错误? 没有吧...server生成的xml的语法估计没错...可能是某些tag不规范还是怎么样...反正client解释不了...网上说可能是命名空间问题....但好像没问题...总之直接用zend的这个Zend_Soap_AutoDiscover不太行...
SoapClient 烂东西?
[ 本帖最后由 wenfeng2 于 2008-9-22 12:46 编辑 ]
百度一下,找到相关网页约1,880篇,用时0.028秒
瓦咔咔~~
不过竟然我这个帖子排到最前面...
哦呵呵呵呵~~
封了他!!
你不要用PHP自带的SoapClient,而使用Zend_Soap_Client 看看。
而且提供的东西很不完整
QUOTE:
如果改成Zend_Soap_Client 就出现这个错误:Fatal error: Maximum function nesting level of '100' reached, aborting! in E:\webSite\htdocs\chosing\library\Zend\Soap\Client.php on line 63
11.jpg
后来google了一下原来是我装了xdebug才出现这个错误,
后来我关掉xdebug这个扩展, 发现就无法打开该网页...
我终于明白了, 这个程序不断重复调用call_user_func_array ( )和Zend_Soap_Client_Common->__doRequest( )(xdebug显示了程序的每一个步骤调用的函数),调用了100次, 估计php引擎不能容忍重复100次以上的调用, 所以xdebug就反映出这个错误Maximum function nesting level of '100' reached....
所以...问题最终没解决...到底怎么回事...zend的这个东东用不了?