我开发了一个symfony2 SOAP Web服务。这不是完整的symfony2安装,我们挑选了我们喜欢的应用程序 - 或者更真实的是那些实际使用代码库的应用程序。
我的工作得很好。我还设法用基本身份验证锁定应用程序。足够的背景。
我安装了SoapUI以进行其他测试。公开曝光的方法显示得很好。 “HelloWorld”不需要任何输入,但响应始终为空。 soapui日志中没有任何价值。 HTTP代码响应200。
我认为端点是正确的,它没有滑到https或不同的端口。
我很困惑。为什么在运行php-client而不是soapUI时才能正常工作?
修改
我正在使用Symfony..Response类来返回数据。当我更改标题(Response :: headers :: set)时,它们会传递给soapUI。
编辑2:
如果我var_dump Symfony响应对象,则内容为空(长度为0)。尽管如此,如上所述,soapClient将响应作为有效的soap消息返回。
当绕过symfony的响应对象(和路由控制器)时,soapUI会得到正确的响应。
发生了什么事?
答案 0 :(得分:0)
通过几个步骤找到解决方案。
首先将路由文件设置为此
THE_Service:
path: /THE/{service}
defaults: { _controller: '..path/to/controller:method' }
...并且/ THE没有路由 - 这是正在处理的实际路径。
并且(这还没有得到妥善解决)由于某种原因,(动态创建的)wsdl文件中的端点在末尾有一个额外的斜杠,而.htaccess中的重写规则导致301,从而掉线POST数据。 (我不知道这是不是这样)。