【发布时间】: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