当前位置: 首页 > 知识库问答 >
问题:

SaajSoapMessageFactory是否支持客户端Mtom resonse

何灿
2023-03-14

我正在编写一个Spring webservice客户机,它调用一个SOAP服务,它返回一个带有附件的SOAP响应(MTOM->XOP include tag in response)。

在我当前的客户机代码中,我使用了SaajSoapMessageFactory并在WebServiceTemplate中注入了相同的内容,我还在封送器中将MtomEnabled设置为true。

客户端的SaajSoapMessageFactory是否支持MTOM响应?

共有1个答案

东门文斌
2023-03-14

我已经提取了SaajSoapMessageFactory附件

@SuppressWarnings("rawtypes")
public class MtomContentRespExtractor implements WebServiceMessageExtractor {


    private static final Logger logger = LoggerFactory.getLogger(MtomContentRespExtractor.class);

    private JAXBContext jaxbContext = null;
    private Class<MyContentResponse> responseType;

    public MtomContentRespExtractor(JAXBContext jaxbContext,
                       Class<MyContentResponse> responseType) {
        this.jaxbContext  = jaxbContext;
        this.responseType = responseType;

    }

    @Override
    public Object extractData(WebServiceMessage webServiceMsg) throws IOException, TransformerException {


        JAXBElement<MyContentResponse> jaxbElement = null;
        MyContentResponse myContResp = null;


        try {

            jaxbElement = jaxbContext.createUnmarshaller()
                          .unmarshal(webServiceMsg.getPayloadSource(), responseType);

            Attachment attachment = (Attachment) ((SaajSoapMessage) webServiceMsg).getAttachments().next();
            myContResp =    (MyContentResponse) jaxbElement.getValue();
                        attachment.getInputStream()

            //Logic for response


        } catch (JAXBException e) {
            logger.error(e.getMessage());
        }


        return myContResp;
    }
 类似资料:
  • 现在我使用的是瘦客户机的ignite ClientCache,我没有找到ClientCache的分布式锁,如果要使用分布式锁,必须使用ignition.start()

  • Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

  • 第一个twisted支持的诗歌服务器 尽管Twisted大多数情况下用来写服务器代码,但为了一开始尽量从简单处着手,我们首先从简单的客户端讲起。 让我们来试试使用Twisted的客户端。源码在twisted-client-1/get-poetry.py。首先像前面一样要开启三个服务器: python blocking-server/slowpoetry.py --port 10000 poetry

  • 我有一个带有一些基于REST的接口的项目,并想为它们生成C#代码。可以发音帮助我做到这一点,还是仅适用于WS*接口? 使用 在调试模式下运行发音,我可以看到消息: 你知道其他可以用来做这件事的工具吗? 最好的

  • 我想知道如何将缓存配置添加到Vertx http web客户端。 使用Apache http客户端,我可以轻松地设置setCacheConfig 有什么想法吗?

  • 我们需要在couchbase客户端和couchbase集群之间实现ssl通信。我正在使用spring数据couchbase客户端api与couchbase集群进行交互,这个api的问题是我没有找到任何属性在couchbase客户端上启用ssl,你能帮我在couchbase客户端上配置ssl吗。