php调用Java的WebService
admin 发表于 2010-08-09 | 来源:互联网 | 阅读:

访问我的WebService会得到以下xml内容

XML code
<?xml version="1.0" encoding="UTF-8" ?> - <wsdl:definitions name="LoginServiceService" targetNamespace="http://impl.service.login.module.project.hzl/" xmlns:ns1="http://service.login.module.project.hzl/" xmlns:ns2="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.service.login.module.project.hzl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:import location="http://192.168.0.27:8888/Project/services/loginWebService?wsdl=ILoginService.wsdl" namespace="http://service.login.module.project.hzl/" /> - <wsdl:binding name="LoginServiceServiceSoapBinding" type="ns1:ILoginService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="login"> <soap:operation soapAction="" style="document" /> - <wsdl:input name="login"> <soap:body use="literal" /> </wsdl:input> - <wsdl:output name="loginResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> - <wsdl:service name="LoginServiceService"> - <wsdl:port binding="tns:LoginServiceServiceSoapBinding" name="LoginServicePort"> <soap:address location="http://192.168.0.27:8888/Project/services/loginWebService" /> </wsdl:port> </wsdl:service> </wsdl:definitions>

请问php的Client应该怎么写?我自己写的

PHP code
<?php try{ $wsdl = "http://localhost:8888/Project/services/loginWebService?wsdl"; $name = "张文华"; $password = "123456"; $cliente = new SoapClient($wsdl); print "<p>The result :"; $vem = $cliente->__call('login',array($name, $password)); print $vem; print "</p>"; print "<br/>"; }catch(Exception $e){ print $e; } ?>

运行时报异常

SoapFault exception: [ns1:InvalidSecurity] An error was discovered processing the header in D:\workspace\discuz\wstest.php:8 Stack trace: #0 D:\workspace\discuz\wstest.php(8): SoapClient->__call(‘login’, Array) #1 {main}

已经有6 个评论
  1. TheAlien 说:

    SoapClient->__call(‘login’, Array)——————————–上面代码正确 ? 粘贴出来看看。

  2. xwcylm 说:

    mixed __call ( string $function_name , array $arguments [, array $options [, array $input_headers [, array $output_headers ]]] )不知道你java那边,对头有什么限制没???

  3. 好色的皮卡丘 说:

    mixed __call ( string $function_name , array $arguments [, array $options [, array $input_headers [, array $output_headers ]]] )不知道你java那边,对头有什么限制没???知道问题所在了,发布java WebService的人,使用了wss4j的验证系统,需要输入用户名和密码,我把验证去掉后可以调用了不过还有个问题,java那边接收参数的时候是2个参数,即用户名和密码。而__call的这个方法明显是传递参数数组,也就是说2个方法的参数列表类型不一致,导致我Server那边接收不到参数,这里有没有什么好的处理办法,当然是在不改动WebService那边的情况下~

  4. bobowanzi 说:

    关注中!

  5. geqian5 说:

    既然是java开发者,为何不用java写的soapui。只要wsdl描述正确完整,soapui+php的curl就够了,用soapclient/nusoap什么的都挺烦人,文档写得不明不白,不过是http协议的扩充版,封装得那么隐蔽的方法,不如直接写协议来得畅快。

  6. 546914408 说:

    能拿点分吗

我要评论

评论功能因故关闭!

请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)


返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明