PHP 调用Java WebService

Java开发的Webservice 接口参数熟String类型的 第三方为php调用。

-<xsd:element name="EmmResut">
-<xsd:complexType>
-<xsd:sequence>
	<xsd:element name="string" type="xsd:string" nillable="true" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

以上是java webservice的部分内容。参数是传入string类型 其实是json的字符串。
PHP中正常调用都是使用:

$client = new SoapClient($WSDL_URL);
1、$client->FunctionName($param1,$param2);
2、$client->__soapCall("FunctionName",array($param1,$param2));
3、$client->__soapCall("FunctionName",array("param1"=>$param1,"param2"=>$param2));

但是这样调用 总是返回 空指针异常。
SoapClient正常使用方法

解决方法:

header("Content-type: text/html; charset=utf-8");  
$webservice_url = "XXXXXXXXXX/service/IWoCheck?wsdl";
$client = new SoapClient($webservice_url);

$time_ago = microtime(true);
$param = array('PK_POINTCHECK' =>'1001A110000000B39UV1','PK_POINTCHECK_B' => '1001A110000000B39UV2', 'PK_PCUSER' => 'Y14050801','PK_PCRESULT'=>'001A4100000000LUQBI','PCMEAS_RESULT'=>'webservice');
$json['string']=json_encode($param);
print_r($json);
try{
    $arr = $client->__soapCall('EmmResut', array($json));
}catch(Exception $e){
    $arr = $e->getMessage();    
}
$time_end = microtime(true);
echo 'webservice执行时间差为:'.($time_end-$time_ago).'s<br>';
print_r($arr);

指定下参数名称 因为wsdl中:

<xsd:element name="string" type="xsd:string" nillable="true" minOccurs="0"/>

解决灵感来源于:
PHP调用Java Webservice

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值