首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用无效xml的Spring请求体问题

使用无效xml的Spring请求体问题
EN

Stack Overflow用户
提问于 2011-05-26 11:01:07
回答 1查看 851关注 0票数 1

在我们的rest应用程序中,我们使用@RequestBody StreamSorce上传xml文件。问题是xml本身是无效的,或者包含一些无效的字符,在我们的逻辑之前,PUT请求失败(带有http糟糕的请求响应),所以我们不能告诉客户端确切的问题。我知道只对requestBody使用普通字符串是可能的,但是使用它有意义吗?我猜如果我上传100 100Mb,每个请求都会创建大小相同的字符串请求体,在使用StreamSource时,我们会在需要时读取输入流。

使用String或StreamSource作为请求体的缺点和优点是什么。如果我用StreamSorce做这件事,它会扫描整个xml吗?

EN

回答 1

Stack Overflow用户

发布于 2013-09-24 15:20:47

您已经知道了StreamSource的缺点: in使您无法对XML进行预处理,以防它无效。

使用String:当XML如此庞大时,它将是性能杀手!千万不要在Java中使用这么大的对象--在应用服务器的多线程环境中,它很容易导致OutOfMemoryError,它使您的应用程序容易受到DoS的攻击!

最好的解决方案是将@RequestBody映射为InputStream,并使用SAX解析器处理InputStream。您的内存消耗很低(SAX解析器不将XML结构存储在内存中),并且可以处理处理过程中抛出的异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6137463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档