我正在使用jax-ws cxf从SOAP接口加载文档。我可以通过SoapUI(xop / multipart)获取正确的文档。不幸的是,当我尝试通过代码加载附件时,对于大于~210kb的文件,CachedOutputStream
为空。
我尝试了什么:
CachedOutputStream.Threshold
和CachedOutputStream.MaxSize
3.2.1
或3.1.14
)调试时:
PhaseInterceptorChain#doIntercept
使用AttachmentInInterceptor
(currentInterceptor.handleMessage(message);
)加载LazyAttachmentCollection
的附件,并将其添加到邮件中。
错误情况(文件太大?):文件在调用currentInterceptor.handleMessage后直接可用,但在循环完成后消失
但是,在上述两种情况下,都会将正确的tmp文件保存到我的磁盘中(完全是我文档的内容)。此外,即使循环结束,我也可以在这两种情况下加载该文件:((org.apache.cxf.attachment.LazyAttachmentCollection)(message.getAttachments())).loadAll();
答案 0 :(得分:0)
我对apache-cxf 3.1.6有类似的问题。问题是高于102kB的文件为空。经过一番挖掘后,结果发现它是“ attachment-memory-threshold”,您可以在requestContext中设置它,出于某种原因,文件缓存似乎无法正常工作。