我正在使用 Spring-ws。我正在尝试WebServiceTemplate.sendSourceAndReceive(src, mySourceExtractor);
在 的extractData
回调方法中SourceExtractor
,我得到一个DOMSource
. 怎么办?
我知道有一个附件,因为当我使用soapUI 调用服务时,我可以获得附件(pdf 文件)。
有没有更好的办法?谢谢。
我正在使用 Spring-ws。我正在尝试WebServiceTemplate.sendSourceAndReceive(src, mySourceExtractor);
在 的extractData
回调方法中SourceExtractor
,我得到一个DOMSource
. 怎么办?
我知道有一个附件,因为当我使用soapUI 调用服务时,我可以获得附件(pdf 文件)。
有没有更好的办法?谢谢。
使用 ClientInterceptor:
public class AttachmentInterceptor implements ClientInterceptor {
Iterator<Attachment> attachments;
@Override
public boolean handleResponse(MessageContext msgCtx) throws WebServiceClientException {
WebServiceMessage msg = msgCtx.getResponse();
if (msg instanceof SaajSoapMessage) {
SaajSoapMessage sm = (SaajSoapMessage) msg;
attachments = sm.getAttachments();
return false;
} else {
return true;
}
}
public Iterator<Attachment> getAttachments() {
return attachments;
}...
然后将拦截器附加到 WebServiceTemplate 并执行调用:
AttachmentInterceptor ai = new AttachmentInterceptor();
wst.setInterceptors(new ClientInterceptor [] { ai });
wst.sendSourceAndReceiveToResult(src, result);
/**
* get attachment
*/
Iterator<Attachment> it = ai.getAttachments();
然后处理附件。