Symfony FOSRestBundle正文监听器与SOAP WebService冲突

时间:2013-12-18 10:54:28

标签: web-services api symfony soap fosrestbundle

我开发了一个带有SOAP WebService(带有PHP SoapServer类)的Symfony2应用程序,用于接收第三个应用程序的数据,现在我正在为用户界面开发一个带有FOSRestBundle的API。问题是,使用我为REST包设置的配置,我的SOAP WebService不起作用,抛出以下错误:

'第7行'FOS \ RestBundle \ EventListener \ BodyListener'收到无效的xml邮件(400 Bad Request)'。

这是我的FOSRestBundle配置:

fos_rest:
    param_fetcher_listener: true
    body_listener: true
    format_listener: true
    view:
        view_response_listener: 'force'
        formats:
            xml: true
            json : true
        templating_formats:
            html: true
        force_redirects:
            html: true
        failed_validation: HTTP_BAD_REQUEST
        default_engine: twig
    routing_loader:
        default_format: json
    serializer:
        serialize_null: true

如果我将body_listener设置为false,那么SOAP WebService工作正常,但我需要将其设置为true以用于我的RESTful API PUT请求。我尝试了不同的配置组合,但我无法解决问题。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

bodylistener中的以下行不返回数组,这就是它失败的原因:

$data = $decoder->decode($content, $format);

请求的标头无效或您发送的内容格式不正确。