我正在使用TYPO3 6.2,並且我想在現有的extbase擴展中實現SOAP服務器。稍後,我希望能夠通過SOAP請求推送數據,然後將其保存到數據庫中。
我的插件的extensinon鍵是soap_parking_deck和供應商是Comkom。在我的分機我有一個類類/服務/ SOAPService.php:TYPO3 6.2擴展中的SOAP服務器
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實際上必須是服務器文件的完整路徑。因爲你試圖調用的類\Comkom\SoapParkingDeck\Service\SOAPServer
代替\SoapServer
和\Comkom\SoapParkingDeck\Service\SOAPFault
代替\SoapFault
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;
}
謝謝形成的提示。我正在用apache errorlog進行竊聽。只要我有一個工作結果,我會發布它。 – diealtebremse