程序作用:
PHP使用NUSOAP调用JAVA作为server的WEBSERVICE
但是PHP发送的始终是空值,以至于得到的返回值都一样
<?php
require("lib/nusoap.php");
$client = new nusoap_client('http://202.104.151.55/web/services/Hello?wsdl',true);
$message = array('111111111111');//这个地方的调用方法应该有误,但是不知道该怎么修改
$cc = $client->getProxy();
$result = $cc->example($message);
print_r($result);
?>
如果直接通过SOAP也能实现的话,也希望朋友们给点方法,谢谢!
JAVA相关信息:
类名:IHello 
方法名:example 
参数:message

解决方案 »

  1.   

    <?php
    require_once("nusoap.php");
    $client = new nusoapclient('http://192.168.88.55:81/nusoap/test2.php?wsdl',true);
    $proxy=$client -> getProxy(); // 创建代理对象 (soap_proxy 类 )
    $str=$proxy->concatenate("111","222"); // 直接调用 WEB 服务
    if (!$err=$proxy->getError()) {
          echo " 程序返回 :",$str;
    } else {
          echo " 错误 :",$err;
    }
    ?>
      

  2.   

    test2.php
    <?php
    require_once("nusoap.php");
    function concatenate($str1,$str2) {
          if (is_string($str1) && is_string($str2))
              return $str1.$str2;
          else
              return new soap_fault(' 客户端 ','','concatenate 函数的参数应该是两个字符串 ');
    }
    $soap = new soap_server;
    $soap->configureWSDL('concatenate'); // 初始化对 WSDL 的支持
    // 注册服务
    $soap->register('concatenate',
    array("str1"=>"xsd:string","str2"=>"xsd:string"), // 输入参数的定义
    array("return"=>"xsd:string") // 返回参数的定义
    );
    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
    $soap->service($HTTP_RAW_POST_DATA);
    ?>