实现Hessian Web服务

时间:2013-06-11 18:36:06

标签: php hessian

您好我正在尝试使用粗麻布创建一个Web服务,但即使是最基本的示例,我似乎也没有任何运气。

这是我的客户

<?php
include_once './Hessian/HessianClient.php';
$testurl = 'http://localhost/HessianPHP/server.php';
$proxy = new HessianClient($testurl);

    echo $proxy->div(2,5); 

?>

这是我的服务器代码:

<?php
include_once 'Hessian/HessianService.php';
$service = new HessianService(new Math());
$service->handle();
?>

class Math {
function add($n1,$n2) {        
    return $n1+$n2;    
  }    
  function sub($n1,$n2) {        
    return $n1-$n2;    
  }    
  function mul($n1,$n2) {        
    return $n1*$n2;    
  }    
  function div($n1,$n2) {        
    return $n1/$n2;    
  }
}

当我运行此代码时,我收到此错误:

  

致命错误:未捕获异常'HessianFault',并在E:\ Program Files \ xampp \ htdocs \ HessianPHP \ Hessian \ Hessian2 \ Hessian2ServiceParser.php中显示消息'代码未被识别为顶级元素':38堆栈跟踪:#0 E :\ Program Files文件\ XAMPP \ htdocs中\ HessianPHP \海森\ HessianClient.php(74):Hessian2ServiceParser-&GT; parseTop()#1 E:\ Program Files文件\ XAMPP \ htdocs中\ HessianPHP \海森\ HessianClient.php(111): HessianClient-&gt; _ hessianCall('div',Array)#2 E:\ Program Files \ xampp \ htdocs \ HessianPHP \ client.php(5):HessianClient-&gt; _call('div' ,数组)#3 E:\ Program Files \ xampp \ htdocs \ HessianPHP \ client.php(5):HessianClient-&gt; div(2,5)#4 {main}抛出E:\ Program Files \ xampp \ htdocs第38行的\ HessianPHP \ Hessian \ Hessian2 \ Hessian2ServiceParser.php

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

index.php(客户端)

<?php

    require_once 'HessianPHP/src/HessianClient.php';

    $testurl = 'http://path/to/mathservice.php' ;
    $proxy = &new HessianClient($testurl);

    try{

        echo '<pre>';
        print_r($proxy->add(1 , 3));
        echo '</pre>';

    } catch (Exception $ex){
        echo 'Exception: ' . $ex->getMessage();
    }

服务器(mathservice.php)

<?php

include_once 'HessianPHP/src/HessianService.php';
include_once 'Math.php';

$service = new HessianService(new Math());
$service->handle();

Math.php

<?php

class Math{
    function add($n1,$n2) {
        return $n1+$n2;
    }
    function sub($n1,$n2) {
        return $n1-$n2;
    }
    function mul($n1,$n2) {
        return $n1*$n2;
    }
    function div($n1,$n2) {
        return $n1/$n2;
    }
}

希望它有所帮助。我认为你的代码中存在一些语法错误(你编写没有php标签的Math类的方式很奇怪)。如果你得到空白屏幕,那么检查你的日志文件(error.log)。