[英]SOAP Server in TYPO3 6.2 extension
我正在使用TYPO3 6.2,并且想在现有的extbase扩展中实现SOAP服务器。 稍后,我希望能够通过SOAP请求推送数据,然后将其保存到数据库中。
我的插件的extensinon密钥是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;
}
您的代码示例无法工作,因为你试图调用类\\Comkom\\SoapParkingDeck\\Service\\SOAPServer
,而不是\\SoapServer
和\\Comkom\\SoapParkingDeck\\Service\\SOAPFault
而不是\\SoapFault
。
在命名空间环境中,应声明\\
(反斜杠)以调用php-类(另请参见如何使用php的“ root”命名空间? )。
调试
在开发过程中,您应该启用debug output
, deprecation logs
并将logging to info level
设置logging to info level
。 这可以在安装工具的“ Configuration presets
=> Development / Production settings
=> Development
下轻松完成。
如果您遇到罕见的行为,例如白屏,500个内部服务器错误等,也请始终检查您的apache errorlog
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.