【问题标题】:SoapUI empty responseSoapUI 空响应
【发布时间】: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


【解决方案1】:

通过几个步骤找到了解决方案。

首先路由文件是这样设置的

THE_Service:
  path: /THE/{service}
  defaults: { _controller: '..path/to/controller:method' }

...没有 /THE 的路由 - 这是正在处理的实际路径。

并且(这还没有正确解决)由于某种原因(动态创建的)wsdl 文件中的端点在末尾带有一个额外的斜杠,并且 .htaccess 中的重写规则导致 301,因此丢弃POST 数据。 (不知道是不是应该这样)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多