Web Services Spring Boot WS:是否可以从MessageContext类的示例中删除所有附件?

v1l68za4  于 2022-12-29  发布在  Spring
关注(0)|答案(1)|浏览(169)

我开发了一个Sping Boot 的WS,在拦截器中我想修改请求并删除所有附件,我尝试了以下方法:

public boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception {
    WebServiceMessage requestReceived = messageContext.getRequest();
    if (requestReceived instanceof SaajSoapMessage) {
        SaajSoapMessage message = ((SaajSoapMessage) requestReceived);
        message.getAttachments().remove();
    }
    return true;
}

但在该迭代器中不支持remove()。
是否可以删除所有附件?
干杯

n1bvdmb6

n1bvdmb61#

我自己还没有尝试过,但是你试图删除附件的方式似乎并不正确。理想情况下,你得到一个迭代器,用它来迭代元素并删除你想要的元素(在你的例子中是“all”元素)。

if (requestReceived instanceof SaajSoapMessage) {
    SaajSoapMessage message = ((SaajSoapMessage) requestReceived);
    Iterator<Attachment> itr = message.getAttachments();

    while(itr.hasNext()) {
        itr.next();
        itr.remove();
    }
}

相关问题