当前位置: 代码迷 >> PHP >> soap 协议服务端配置 wsdl 一直出错,求大牛指点
  详细解决方案

soap 协议服务端配置 wsdl 一直出错,求大牛指点

热度:532   发布时间:2016-04-28 18:39:47.0
soap 协议服务端配置 wsdl 一直报错,求大牛指点
本帖最后由 i_bruce 于 2014-06-24 10:16:24 编辑
错误提示如下,
Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't find in 'http://test.soaptest.com/soap/Service.php?wsdl' in /data/app/www/soaptest/client.php on line 4 Call Stack: 0.0003 324360 1. {main}() /data/app/www/soaptest/client.php:0 0.0003 324796 2. SoapClient->SoapClient() /data/app/www/soaptest/client.php:4

客户端调用代码client
date_default_timezone_set("PRC");
ini_set('soap.wsdl_cache_enabled', "0"); //关闭wsdl缓存
$soap = new SoapClient('http://test.soaptest.com/soap/Service.php?wsdl'); 
//echo $soap->Add(28, 2);
//echo $soap->__soapCall('Add',array(28,2));//或这样调用

服务器端代码Service.php

<?php
class Service {

    public function HelloWorld() {
        return "Hello";
    }

    public function Add($a, $b) {
        return $a + $b;
    }

}
$server = new SoapServer('Service.wsdl', array('soap_version' => SOAP_1_2));
$server->setClass("Service"); //注册Service类的所有方法 
$server->handle(); //处理请求
?>

生成WSDL文件 create_wsdl.php
date_default_timezone_set("PRC");
include("Service.php");
include("SoapDiscovery.class.php");
$disco = new SoapDiscovery('Service', 'soap'); //第一个参数是类名(生成的wsdl文件就是以它来命名的),即Service类,第二个参数是服务的名字(这个可以随便写)。
$disco->getWSDL();
~                        


生成wsdl文件类
<?php

/**
* Copyright (c) 2005, Braulio Jos?Solano Rojas
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of
* conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* Neither the name of the Solsoft de Costa Rica S.A. nor the names of its contributors may
* be used to endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*
* @version $Id: SoapDiscovery.class.php 66 2013-04-10 07:12:21Z ideaa $
* @copyright 2005
*/

/**
* SoapDiscovery Class that provides Web Service Definition Language (WSDL).
*
* @package SoapDiscovery
* @author Braulio Jos?Solano Rojas
* @copyright Copyright (c) 2005 Braulio Jos?Solano Rojas
* @version $Id: SoapDiscovery.class.php 66 2013-04-10 07:12:21Z ideaa $
* @access public
* */
class SoapDiscovery {

private $class_name = '';
private $service_name = '';

/**
* SoapDiscovery::__construct() SoapDiscovery class Constructor.
*
* @param string $class_name
  相关解决方案