【问题标题】:Implementing Hessian web service实现 Hessian Web 服务
【发布时间】:2013-06-11 18:36:06
【问题描述】:

您好,我正在尝试使用 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 行

我在这里做错了什么?

【问题讨论】:

  • 错误来自客户端还是服务器?这个示例来自 Hessian 网站,还是您可以尝试那里的工作示例?如果您从某个地方获得示例,提供该示例的 URL 会很有帮助,因此有几分钟时间的人可能会使用该来源查看您是否可能遗漏了什么。

标签: php hessian


【解决方案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)。

【讨论】:

    猜你喜欢
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 2018-02-14
    • 2019-11-18
    相关资源
    最近更新 更多