0

私はSpring-wsを使用しています。WebServiceTemplate.sendSourceAndReceive(src, mySourceExtractor);extractDataコールバック メソッドでSourceExtractor、 を取得しようとしていますDOMSource。それで?

添付ファイルがあることはわかっています。soapUI でサービスを呼び出すと、添付ファイル (pdf ファイル) を取得できるからです。

より良い方法はありますか?ありがとう。

4

1 に答える 1

1

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();

次に、添付ファイルを処理します。

于 2013-03-02T03:34:30.483 に答える