0

嗨,我正在尝试使用 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;    
  }
}

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

致命错误:在 E:\Program Files\xampp\htdocs\HessianPHP\Hessian\Hessian2\Hessian2ServiceParser.php:38 堆栈跟踪:#0 E:\Program Files\xampp\htdocs\HessianPHP\Hessian\HessianClient.php(74): Hessian2ServiceParser->parseTop() #1 E:\Program Files\xampp\htdocs\HessianPHP\Hessian\HessianClient.php(111): HessianClient->_ hessianCall('div', Array) #2 E:\Program Files\xampp\htdocs\HessianPHP\client.php(5): HessianClient-> _call('div', Array) #3 E:\Program Files\xampp\ htdocs\HessianPHP\client.php(5): HessianClient->div(2, 5) #4 {main} 在 E:\Program Files\xampp\htdocs\HessianPHP\Hessian\Hessian2\Hessian2ServiceParser.php 第 38 行抛出

我在这里做错了什么?

4

1 回答 1

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();

数学.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)。

于 2014-04-15T06:31:05.283 回答