在 grails.converters.XML.parse(XML.java:340) ~[grails-plugin-converters-3.0.17.jar:3.0.17]

at grails.converters.XML.parse(XML.java:340) ~[grails-plugin-converters-3.0.17.jar:3.0.17]

我在我的 grails 控制器中实现了一个端点并尝试使用邮递员 xml 传递数据

request.withFormat {
                xml {
                    println("Inside Xml")
                    // render "The XML Title Is ${request.XML.userId}."
                    println("XML: " + request.XML) // exception in this line
                }
}

at grails.converters.XML.parse(XML.java:340) ~[grails-plugin-converters-3.0.17.jar:3.0.17]

Caused by: java.io.IOException: Stream closed
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at grails.converters.XML.parse(XML.java:337)

我正在使用 grails 版本 3.0.17

request.JSON 工作正常但在 request.XML

上抛出错误

下面是我控制器上的过滤器

[pattern: '/demo/requests/**', filters: 'anonymousAuthenticationFilter,restTokenValidationFilter,restExceptionTranslationFilter,filterInvocationInterceptor'],

如果在调用 request.withFormat 方法之前有一些东西正在读取请求的主体,这将解释“流关闭”错误。

这方面的常见示例包括您的应用程序中的过滤器或拦截器,它在您的控制器操作执行之前准备好请求的主体,并且如果控制器操作接受命令对象,则必须读取请求的主体在您的代码执行之前。