日期:2014-05-17  浏览次数:20438 次

第一次用php写webservice遇到一个很奇怪的问题,详细请看内容,有代码
1.服务器端代码(service):

<?php
require_once "../views/config.inc";     // 只要加上一个就报错,用include也一样,其中config.inc 文件很简单加上就报错
$soap = new SoapServer(null,array('uri'=>"http://xxxxxx.com.cn/",'encoding'=>'UTF-8'));
$soap->setClass('user');
$soap->handle();
class user
{
protected  $Rolse=array();
public function getRoles($UserName,$Password)
{
return $UserName.$Password;
}
}
?>

2、客户端代码:

<?php
$roles=array();
try 
{
    $client = @new SoapClient(null,
        array('location' =>"http://localhost/models/userInfo.php",'trace'=>1,'encoding'=>'UTF-8','uri' => "http://xxxxxx.com.cn")
    );
    $roles=$client->getRoles('test','12345678');
    print_r($roles);

catch (SoapFault $fault)
{
    echo "Error: ",$fault->faultcode,", string: ",$fault->faultstring;
}
?>

3.config.inc文件:

<?php
global $conf;
$conf['DBUSER']='root';
$conf['DBPWD']='';
$conf['DBHOST']='localhost';
?>


代码就这些,现在出现非常奇怪的问题:只要我在服务器端代码中加上“require_once "../views/config.inc";”在句,调用它就出错:“looks like we got no XML document”,把这行注释掉,程序就正常,一直没有找到解决办法。
php webservice soap

------解决方案--------------------
可能造成的原因:
1. 所有的php文件,包括直接和间接调用到的,注意在之前不能用任何空行或者空格字符,之后不能有任何空行或空白字符.
2. 程序本身的语法错误—-函数参数少了、少了封号、数据库错误等等的错误,而未使用异常处理来抓住这些错误。
3. 人为的返回了非XML标准的数据,如echo了一个非XML标准字符串等等。

上面是复制的

------解决方案--------------------
不引用,直接放在里面,看如何?
<?php
global $conf;
$conf['DBUSER']='root';
$conf['DBPWD']='';
$conf['DBHOST']='localhost';
?>
------解决方案--------------------
config.inc
<?php
global $conf;
$conf['DBUSER']='root';
$conf['DBPWD']='';
$conf['DBHOST']='localhost';
以 ANSI 保存