Spring WS Web服务。使用SAAJ向响应中添加附件-端点无适配器

天天见闻 天天见闻 2023-03-15 科技 阅读: 85
摘要: org.springframework.ws˂invoke(@RequestPayload DownloadMessageRequestSaaj req;\\temp\\maven-feather.png"));payload.setMessagePayLoad(handler);

如何解决Spring WS Web服务。使用SAAJ向响应中添加附件-端点无适配器?

我相信无论哪种情况,您的客户都需要了解附件,因此我建议您坚持使用mtom(因为它已成为标准配置)

检查您使用的spring-ws版本以及使用的maven group-id。我遇到了同样的错误,因为最近添加了此功能(我认为呢?)。

尝试输入,并删除其他任何spring-ws进口的产品

    
        org.springframework.ws
        spring-ws-core
        2.0.2.RELEASE
    

解决方法

我真的很难让Spring-
WS返回带有附件的响应。我设法获得了MTOM版本,但是这在客户端上有一些先决条件,因为我认为客户端也必须启用MTOM(如果不正确,请更正我)。

我现在想要做的是使用SAAJ和Spring-WS的附件实现实现标准的SOAP。

为此,我实现了一个端点,该端点仅将来自本地文件系统的图像附加到响应。

@Endpoint
public class TestEndPoint {

private SaajSoapMessageFactory saajMessageFactory;

@PayloadRoot(namespace="http://ws.mypackage.com",localPart="downloadMessageRequestSaaj")
    @ResponsePayload
    public JAXBElement invoke(@RequestPayload DownloadMessageRequestSaaj req,MessageContext context ) throws Exception  {

        DownloadResponseSaajType response = new DownloadResponseSaajType();
        DownloadResponseSaajType.PayLoad payload = new DownloadResponseSaajType.PayLoad();

        DataHandler handler = new javax.activation.DataHandler(new FileDataSource("c:\\temp\\maven-feather.png"));

            SaajSoapMessage message = saajMessageFactory.createWebServiceMessage();
            message.addAttachment("picture",handler);

            context.setResponse(message);

            payload.setMessagePayLoad(handler);

            return objectFactory.createDownloadMessageResponseSaaj(response);

    }

    public void setSaajMessageFactory(SaajSoapMessageFactory saajMessageFactory){
        this.saajMessageFactory = saajMessageFactory;
    }

    public SaajSoapMessageFactory getSaajMessageFactory(){
        return saajMessageFactory;
    }
}

Saaj属性注入了视点,如下所示:





        



    

当我尝试致电上述服务时,出现以下错误:


   
   
      
         SOAP-ENV:Server
         No adapter for endpoint [public javax.xml.bind.JAXBElement com.mypackage.TestEndPoint.invoke(com.mypackage.ws.DownloadMessageRequestSaaj,org.springframework.ws.context.MessageContext) throws java.lang.Exception]: Is your endpoint annotated with @Endpoint,or does it implement a supported interface like MessageHandler or PayloadEndpoint?
      
   

编辑7月13日

我今天注意到,我更改了方法签名以删除MessageContext参数,如下所示,然后我没有得到该错误:

public JAXBElement invoke(@RequestPayload DownloadMessageRequestSaaj req)

但是,问题是我需要访问MessageContext才能添加附件。可能是我的配置在某处错误吗?

其他相关
沪上十二少《穿越迷宫的智慧》解读「4」

沪上十二少《穿越迷宫的智慧》解读「4」

作者: 天天见闻 时间:2024-02-28 阅读: 44
我们不能对任何一个东西下一个绝对的定义,认为它是对还是错。对自我的了解非常重要,如果你不了解自己,你是没办法在这个市场中生存的。其实交易者在整个市场里,对赚钱所起的作用只有一半,还有一半来自市场。你个人的本事不能是你成功的全部,一定有一部分要来自市场。...
新型 YouPorn 勒索骗局出现,威胁要泄露用户性爱录像带

新型 YouPorn 勒索骗局出现,威胁要泄露用户性爱录像带

作者: 天天见闻 时间:2024-01-05 阅读: 41
[标题]新型恐吓诈骗爆发,用户性爱视频恐怕会泄露!网站称,该骗局伪装成成人网站发来的电子邮件,以色情敲诈勒索邮件的形式发送给用户。面对这种情况,许多受害者们可能会选择支付赎金以保护自己的隐私。但是,这种做法并非万无一失,因为攻击者通常会继续要求更高的赎金,并可能将视频广播到互联网上。...

jquery动画效果实例_动画js

作者: 天天见闻 时间:2023-07-25 阅读: 66
开始视频<;distance;button>;var btn=document.querySelector(“button”);Box.style.left=“800px”;/script>;var Box=document.querySelector(“#Box”);function animation(target;clearInterval(Timer);...
Excel除零错误提示如何去掉除零错误怎么不显示

Excel除零错误提示如何去掉除零错误怎么不显示

作者: 天天见闻 时间:2023-07-25 阅读: 114
1、先打开不想显示的表,2、图的公式是最简单的方法。也就是说,您可以直接划分[=单元格1/单元格2],3,优化公式以输入公式[=iferror(单元格1/单元格2,错误时显示0,显示正确的结果4)。可以把这个公式往下拉。5。如果不想显示错误(即,在出现错误时留有空格,且计算出现错误),“删除Excel 0错误提示0如何不显示删除错误的方法”如何解决Excel计算中的错误提示...
俞敏洪携团队指出景区塔院寺门口提示牌英文译文错误

俞敏洪携团队指出景区塔院寺门口提示牌英文译文错误

作者: 天天见闻 时间:2023-06-01 阅读: 108
5月25日,“俞敏洪游五台山”的话题登上热搜,具体啥情况?据了解,5月24日,俞敏洪携团队在五台山景区直播期间,指出景区塔院寺门口“您已进入监控拍摄区域”提示牌英文译文错误,并认为“五台山是国际级别的旅游胜地,不应该有大错误的”。景区管委会非常重视并真诚感谢俞敏洪老师及团队的提醒和指正。当天下午2时,景区即对此提示牌进行了拆除待重新制作后悬挂。...
阶级斗争是阶级利益根本冲突的对抗阶级之间的对立和斗争

阶级斗争是阶级利益根本冲突的对抗阶级之间的对立和斗争

作者: 天天见闻 时间:2023-05-20 阅读: 94
本题所调查的知识追求过高性(过度性),如在被控制的心灵中磨练阶级斗争的作用。阶级斗争是对抗阶级利益根本冲突的对抗阶级之间的对立和斗争,阶级满分围嘴脸不补开斗争是社会的基本矛盾在阶级社会中的直接表现。是阶级社会发展的直接动力。...
我来说两句

年度爆文