栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Spring-WS中将附件添加到响应有效负载?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Spring-WS中将附件添加到响应有效负载?

Spring-WS中的文档特别关注此主题,添加SOAP附件实际上非常容易。我将做一些假设:

  1. 您的WSDL正确指定
    mime:multipartRelated
    了输出消息上的
  2. 我们将使用Saaj SOAP消息工厂

附件驻留在SOAP消息的MimeContainer中。为了获得此容器,我们需要手动构造SOAP响应,只是其中的一部分。这样做看起来像这样:

SaajSoapMessageFactory factory = new SaajSoapMessageFactory(    javax.xml.soap.MessageFactory.newInstance());SaajSoapMessage message = factory.createWebServiceMessage();

现在,我们需要一个DataHandler作为图片:

DataHandler handler = new DataHandler(    new URLDataSource(        Service.class.getResource("coffee.jpg")));message.addAttachment("picture", handler);

好的,内容:检查,消息:检查,嗯,仍然需要得到响应才能出去。这里最棘手的部分是,我们需要引入,

MessageContext
以便我们可以将 这一
特定消息设置为响应的消息,我们可以通过编辑以下内容的定义来做到这一点
getCoffee

public Coffee getCoffee(@RequestPayload Order order, MessageContext context)

放在一起:

@Endpointpublic class Service{    private SaajSoapMessageFactory saajMessageFactory; // dependency inject this    @PayloadRoot(namespace = "http://foo.com/coffee", localPart = "order")    @ResponsePayload    public Coffee getCoffee(@RequestPayload Order order, MessageContext context){        DataHandler handler = new DataHandler( new URLDataSource(     Service.class.getResource("coffee.jpg")));        SaajSoapMessage message = saajMessageFactory.createWebServiceMessage();        message.addAttachment("picture", handler);        context.setResponse(message);        return new Coffee("Hot Joe");    }    public void setSaajMessageFactory(SaajMessageFactory saajMessageFactory){        this.saajMessageFactory = saajMessageFactory;    }    public SaajMessageFactory getSaajMessageFactory(){        return saajMessageFactory;    }}

从好的方面来说,这是获取的bean依赖项注入

SaajMessageFactory

<bean id="soapMessageFactory"  factory-method="newInstance" /><bean id="saajMessageFactory" >    <constructor-arg ref="soapMessageFactory" /></bean><bean id="myService" >    <property name="saajMessageFactory" ref="saajMessageFactory" /></bean>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410364.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号