【发布时间】:2014-10-16 10:14:44
【问题描述】:
我开发了一个 symfony2 SOAP 网络服务。这不是完整的 symfony2 安装,我们精心挑选了我们喜欢的应用程序 - 或者更准确地说,是那些实际与代码库一起工作的应用程序。
- 我按照步骤创建了symfony SOAP webservice。
- 我创建了一个从 CLI 执行的测试文件。
- 由于都是 PHP,我使用的是内部 SOAPServer/SOAPClient 类
我得到这个工作得很好。我还设法通过基本身份验证锁定了应用程序。足够的背景。
我安装了 SoapUI 以进行额外测试。公开暴露的方法显示得很好。 “HelloWorld”不需要任何输入,但响应始终为空。 soapui 日志中没有任何价值。 HTTP 代码响应 200。
我认为端点是正确的,它没有滑到 https 或其他端口。
我很困惑。为什么在运行 php-client 而不是 soapUI 时它可以工作?
编辑:
我正在使用 Symfony..Response 类来返回数据。当我更改标头(Response::headers::set)时,它们被传递到soapUI。
编辑 2:
如果我 var_dump Symfony 响应对象,则内容为空(长度为 0)。尽管如此,如前所述,soapClient 仍将响应作为有效的soap 消息返回。
当绕过 symfony 的响应对象(和路由控制器)时,soapUI 会得到正确的响应。
发生了什么事?
【问题讨论】:
-
你看过原始日志吗?那说明什么?你期待看到什么?
-
原始响应?它显示标题:
HTTP/1.0 200 OK Date: Thu, 16 Oct 2014 10:10:40 GMT Server: Apache/2.2.22 (Debian) X-Powered-By: PHP/5.4.4-14+deb7u14 Cache-Control: no-cache Vary: Accept-Encoding Connection: close Content-Type: text/xml; charset=UTF-8我期待一个字符串“Hello world!” -
它又回到了 symfony 路由问题。一旦实现就很明显了,但是要调整的参数数量会产生晦涩和无意义的错误。
-
好东西...我可以建议你把你的解决方案作为答案,这样其他人就不必像你一样挣扎。
-
我会这样做(即使它不合适)
标签: web-services symfony soap soapui