【问题标题】:How to handle FileNotFoundException in Java class extending AbstractMessageTransformer in Mule?如何在 Mule 中扩展 AbstractMessageTransformer 的 Java 类中处理 FileNotFoundException?
【发布时间】:2015-05-17 23:34:02
【问题描述】:

我在 mule 中使用自定义转换器,为此我正在编写扩展 AbstractMessageTransformer 的自定义 Java 代码。

我在自定义 java 类中遇到了一个问题,因为我需要处理 FileNotFoundException 它说 FileNotFoundException 与 AbstractMessageTransformer 不兼容。

有什么方法可以在扩展 AbstractMessageTransformer 的自定义 java 类中处理 FileNotFoundException 吗??

【问题讨论】:

    标签: java exception mule filenotfoundexception mule-studio


    【解决方案1】:

    如果您想在扩展 AbstractMessageTransformer 的类中重新抛出 FileNotFoundException,那么您可能应该将该异常包装到 TransformerExceptiondoTransform方法抛出的一个

    您的方法将如下所示

        try{
            //Your custom transformation
        } catch(FileNotFoundException e){
            Message msg = CoreMessages.transformFailedBeforeFilter();
            throw new TransformerException(msg,this, e);
        }
    

    【讨论】:

    • 您能解释一下将该异常包装到 TransformerException 中的方法吗
    • 谢谢...我尝试了 doTransform 和 FileNotFoundException 但结果并不好
    • 您在使用这种方法时遇到了什么问题?
    • 公共类 MessageAttachmentTransformer 扩展 AbstractMessageTransformer { private List 文件名; // 要附加的文件 @SuppressWarnings("deprecation") public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException { if (filename.isEmpty() || filename==null || filename.size()==0) / /filename 是一个列表,包含作为 mule 附件的文件路径列表{//如果附件文件不存在 **//这里我要放置 FileNotFoundException ** 返回消息; } else { // 做其他事情} 返回信息; } } }
    • 您应该首先检查文件名是否为空,否则 filename.isEmpty() 很可能会导致 NPE
    【解决方案2】:
    public class MessageAttachmentTransformer extends AbstractMessageTransformer
    {private List<String> filename; // file to attach
        @SuppressWarnings("deprecation")
        public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {
            if (filename.isEmpty() || filename==null || filename.size()==0) **//filename is a list contains list of file path as mule attachment**
            {**//If file for attachment is not there**
                **//Here I want to place FileNotFoundException**
                return message;} else
            { // do other thing} return message;
            } 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多