php调用java webservice 在线等,请各位大侠帮帮忙。

hnfenfen 2011-08-09 10:13:40
现在要做php调用java做的webservice。wsdl文件如下

<definitions name='OpenService2011' targetNamespace='http://www.zs.gov.cn' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://www.zs.gov.cn' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
<types>
<xs:schema targetNamespace='http://www.zs.gov.cn' version='1.0' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
<xs:complexType name='openInfo'>
<xs:sequence>
<xs:element name='aid' type='xs:int'/>
<xs:element minOccurs='0' name='builddate' type='xs:dateTime'/>
<xs:element minOccurs='0' name='ccatcode' type='xs:string'/>
<xs:element minOccurs='0' name='ccatname' type='xs:string'/>
<xs:element minOccurs='0' name='content' type='xs:string'/>
<xs:element minOccurs='0' name='description' type='xs:string'/>
<xs:element minOccurs='0' name='docno' type='xs:string'/>
<xs:element name='id' type='xs:int'/>
<xs:element minOccurs='0' name='identifier' type='xs:string'/>
<xs:element name='isupload' type='xs:int'/>
<xs:element minOccurs='0' name='keywords' type='xs:string'/>
<xs:element minOccurs='0' name='language' type='xs:string'/>
<xs:element name='linkid' type='xs:int'/>
<xs:element name='linktype' type='xs:int'/>
<xs:element minOccurs='0' name='mddate' type='xs:dateTime'/>
<xs:element minOccurs='0' name='online' type='xs:string'/>
<xs:element minOccurs='0' name='opentype' type='xs:string'/>
<xs:element minOccurs='0' name='procode' type='xs:string'/>
<xs:element minOccurs='0' name='proindex' type='xs:string'/>
<xs:element minOccurs='0' name='proname' type='xs:string'/>
<xs:element minOccurs='0' name='pubcode' type='xs:string'/>
<xs:element minOccurs='0' name='pubname' type='xs:string'/>
<xs:element minOccurs='0' name='ridxid' type='xs:string'/>
<xs:element minOccurs='0' name='rtitle' type='xs:string'/>
<xs:element minOccurs='0' name='scatcode' type='xs:string'/>
<xs:element minOccurs='0' name='scatname' type='xs:string'/>
<xs:element name='state' type='xs:int'/>
<xs:element minOccurs='0' name='tcatcode' type='xs:string'/>
<xs:element minOccurs='0' name='tcatname' type='xs:string'/>
<xs:element minOccurs='0' name='title' type='xs:string'/>
<xs:element minOccurs='0' name='trimTitle' type='xs:string'/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</types>
<message name='Open2011_getOpenInfoResponse'>
<part name='return' type='tns:openInfo'></part>
</message>
<message name='Open2011_insertResponse'>
<part name='return' type='xsd:int'></part>
</message>
<message name='Open2011_getOpenInfo'>
<part name='arg0' type='xsd:int'></part>
</message>
<message name='Open2011_searchResponse'>
<part name='return' type='xsd:string'></part>
</message>
<message name='Open2011_insert'>
<part name='arg0' type='tns:openInfo'></part>
<part name='arg1' type='xsd:string'></part>
</message>
<message name='Open2011_search'>
<part name='arg0' type='tns:openInfo'></part>
<part name='arg1' type='xsd:int'></part>
<part name='arg2' type='xsd:int'></part>
<part name='arg3' type='xsd:string'></part>
</message>
<portType name='Open2011'>
<operation name='getOpenInfo' parameterOrder='arg0'>
<input message='tns:Open2011_getOpenInfo'></input>
<output message='tns:Open2011_getOpenInfoResponse'></output>
</operation>
<operation name='insert' parameterOrder='arg0 arg1'>
<input message='tns:Open2011_insert'></input>
<output message='tns:Open2011_insertResponse'></output>
</operation>
<operation name='search' parameterOrder='arg0 arg1 arg2 arg3'>
<input message='tns:Open2011_search'></input>
<output message='tns:Open2011_searchResponse'></output>
</operation>
</portType>
<binding name='Open2011Binding' type='tns:Open2011'>
<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
<operation name='getOpenInfo'>
<soap:operation soapAction=''/>
<input>
<soap:body namespace='http://www.zs.gov.cn' use='literal'/>
</input>
<output>
<soap:body namespace='http://www.zs.gov.cn' use='literal'/>
</output>
</operation>
<operation name='insert'>
<soap:operation soapAction=''/>
<input>
<soap:body namespace='http://www.zs.gov.cn' use='literal'/>
</input>
<output>
<soap:body namespace='http://www.zs.gov.cn' use='literal'/>
</output>
</operation>
<operation name='search'>
<soap:operation soapAction=''/>
<input>
<soap:body namespace='http://www.zs.gov.cn' use='literal'/>
</input>
<output>
<soap:body namespace='http://www.zs.gov.cn' use='literal'/>
</output>
</operation>
</binding>
<service name='OpenService2011'>
<port binding='tns:Open2011Binding' name='Open2011Port'>
<soap:address location='http://127.0.0.1:87/services2011/OpenService2011'/>
</port>
</service>
</definitions>


我的调用代码如下:

$client = new SoapClient(null,array('location' =>"http://www.zs.gov.cn:87/services2011/OpenService2011?wsdl",'uri'=> "http://www.zs.gov.cn"),'1.0',0);
$header = new SoapHeader(array('username' =>$userName,'password' => $password));
$client->__setSoapHeaders($header);
$param=array('id' => 3092);
$arr=$client->__soapCall("getOpenInfo", $param);
print_r($arr);


出现错误:
Fatal error: Uncaught SoapFault exception: [Client] SoapClient::SoapClient() [<a href='soapclient.soapclient'>soapclient.soapclient</a>]: Invalid parameters in D:\myweb\web\zstop_web\top_hui\test\test.php:4 Stack trace: #0 D:\myweb\web\zstop_web\top_hui\test\test.php(4): SoapClient->SoapClient(NULL, Array, '1.0', 0) #1 {main} thrown in D:\myweb\web\zstop_web\top_hui\test\test.php on line 4


第一次用php调用webservice。请各位高手帮忙看看,在线等,感激不尽。
...全文
362 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnfenfen 2011-08-17
  • 打赏
  • 举报
回复
不过还是非常感谢楼上这位大哥的回复。。thank you 80分奉上。
hnfenfen 2011-08-17
  • 打赏
  • 举报
回复
问题已经解决,接口开发的人提供了一个ASP的例子,照着写了一个php的。

function getInfoById($url,$username,$password,$id)
{
$xmlhttp =new COM("Msxml2.ServerXMLHTTP");

$SoapRequest = "<?xml version='1.0' encoding='utf-8'?>" ;
$SoapRequest = $SoapRequest."<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://www.w3.org/2003/05/soap-envelope'>";
$SoapRequest = $SoapRequest."<soap:Body>";
$SoapRequest = $SoapRequest."<getOpenInfo xmlns='http://www.XXX.cn'>";
$SoapRequest = $SoapRequest."<arg0 xmlns=''>".$id."</arg0>";
$SoapRequest = $SoapRequest."</getOpenInfo>";
$SoapRequest = $SoapRequest."</soap:Body>";
$SoapRequest = $SoapRequest."</soap:Envelope>";

$xmlhttp->Open("POST",$url,false ,$username,$password);
$xmlhttp->setRequestHeader("Content-Type", "text/xml;charset=utf-8");
$xmlhttp->setRequestHeader("HOST", "www.XXX.cn");
$xmlhttp->setRequestHeader("Content-Length",strlen($SoapRequest));
$xmlhttp->setRequestHeader("SOAPAction", "http://www.XXX.cn");
$xmlhttp->Send ($SoapRequest);

$result = $xmlhttp->responseText;
$xmlhttp = null;

return $result;
}
sports98 2011-08-09
  • 打赏
  • 举报
回复
$param=array('id' => 3092);



<message name='Open2011_getOpenInfo'>
<part name='arg0' type='xsd:int'></part>
</message>


id -> arg0
hnfenfen 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sports98 的回复:]
$param=array('id' => 3092);



<message name='Open2011_getOpenInfo'>
<part name='arg0' type='xsd:int'></part>
</message>


id -> arg0
[/Quote]

谢谢楼上这位大侠,不过好像不行,不是这个问题哦。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧