【问题标题】:SOAP Server in TYPO3 6.2 extensionTYPO3 6.2 扩展中的 SOAP 服务器
【发布时间】:2015-10-15 10:43:45
【问题描述】:

我正在使用 TYPO3 6.2,我想在我现有的 extbase 扩展中实现一个 SOAP 服务器。稍后我希望能够通过 SOAP 请求推送数据,然后将其保存到数据库中。
我的插件的扩展键是 soap_parking_deck,供应商是 Comkom。在我的扩展中,我有一个类 Classes/Service/SOAPService.php

namespace Comkom\SoapParkingDeck\Service;

class SOAPService {
  public function __construct() {
    try {
      $server = new SOAPServer (
        NULL,
        array (
          'uri' => 'http://localhost/test/SOAPService',
          'encoding' => 'UTF-8',
          'soap_version' => SOAP_1_2
        )
      );
      $server->addFunction('helloWorld');
      $server->handle();
    }
    catch (SOAPFault $fault) {
      print $fault->faultstring;
    }
  }

  public function helloWorld() {
    return 'Hello World';
  }
}

在类中,我定义了一个 PHP SOAPServer 和一个函数 helloWorld()。但是当我尝试发出请求时,我收到了 404 错误。

在 Arek van Schaijk 的暗示下,我想出了一个解决方案。
发生 404 错误是因为 uri 实际上必须是服务器文件的完整路径。

namespace Comkom\SoapParkingDeck\Service;

class SOAPService {
  public function helloWorld() {
    return 'Hello World';
  }
}

try {
  $server = new \SOAPServer (
    NULL,
    array (
      'uri' => 'http://localhost/test/typo3conf/ext/soap_parking_deck/Classes/Service/SOAPService',
      'encoding' => 'UTF-8',
      'soap_version' => SOAP_1_1
    )
  );
  $server->setClass('Comkom\SoapParkingDeck\Service\SOAPService');
  $server->handle();
}
catch (\SOAPFault $fault) {
  print $fault->faultstring;
}

【问题讨论】:

    标签: php soap extbase typo3-6.2.x


    【解决方案1】:

    您的代码示例无法运行,因为您尝试调用类 \Comkom\SoapParkingDeck\Service\SOAPServer 而不是 \SoapServer\Comkom\SoapParkingDeck\Service\SOAPFault 而不是 \SoapFault

    在命名空间环境中,您应该声明 \(反斜杠)以调用 php- 类(另请参阅 How to use “root” namespace of php?)。

    调试

    在开发过程中,您应该启用debug outputdeprecation logs 并设置logging to info level。这可以在Configuration presets => Development / Production settings => Development 下的安装工具中轻松完成。

    如果您处理诸如白屏、500 个内部服务器错误等罕见行为,请始终检查您的apache errorlog

    【讨论】:

    • 谢谢您的提示。我现在正在使用 apache 错误日志。一旦我有工作结果,我会发布它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多