首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >spring集成修改错误消息有效载荷

spring集成修改错误消息有效载荷
EN

Stack Overflow用户
提问于 2014-02-10 22:46:21
回答 1查看 495关注 0票数 0

对于我的spring集成流中的错误处理,我希望捕获服务激活器中的异常,它接收来自聚合器的输入,因此它可以处理消息的集合。当抛出异常时,整个集合将作为消息有效负载发送。相反,我希望将抛出异常的实际项作为错误消息的内容。

代码语言:javascript
运行
复制
public Collection<File> move(Collection<File> files){
    ...
    //process all files
    for(File file : files){         
        if(file.getName().equals("file-2.done")){
            throw new RuntimeException("SOMETHING WENT WRONG");
        }

        ... process the file
    }

我的异常处理程序希望检索导致错误的文件。

代码语言:javascript
运行
复制
File file = (File) message.getPayload().getFailedMessage().getPayload();

但是在这种情况下,集合是作为有效负载发送的,而不是一个文件。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-10 23:18:51

框架不知道move方法内部会发生什么。

你可以做一些类似..。

代码语言:javascript
运行
复制
public classs MyFileFailureException extends RuntimeException {
    private final File file;
    public MyFileFailureException(String msg, File file) {
        super(msg);
        this.file = file;
    }
    public File getFailedFile() {return this.file}
}

然后移动()..。

代码语言:javascript
运行
复制
throw new MyFileFailureException("message", file);

然后,用.

代码语言:javascript
运行
复制
message.getPayload().getCause().getFailedFile().
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21689482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档