【问题标题】:Error thrown while using datamapper to map date in Mule使用 datamapper 在 Mule 中映射日期时引发错误
【发布时间】:2014-12-06 00:03:42
【问题描述】:

以下是数据映射器中的映射部分

dateTimeFormatter = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); output.Date_of_Rate_Float__c = (isnull(input.Date_of_Rate_Float) ? null : dateTimeFormatter.format(input.Date_of_Rate_Float)); output.Loan_Create_Date__c = (isnull(input.loan_create_date) ? null : dateTimeFormatter.format(input.loan_create_date)); output.Estimated_Closing_Date__c = (isnull(input.estimated_closing_date) ? null : dateTimeFormatter.format(input.estimated_closing_date));

这会引发以下异常

1. DateConverter does not support default String to 'Date' conversion. (org.apache.commons.beanutils.ConversionException)
  org.apache.commons.beanutils.converters.DateTimeConverter:468 (null)

Root Exception stack trace:
org.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion.
    at org.apache.commons.beanutils.converters.DateTimeConverter.toDate(DateTimeConverter.java:468)
    at org.apache.commons.beanutils.converters.DateTimeConverter.convertToType(DateTimeConverter.java:343)
    at org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:156)
    at org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:544)
    at com.mulesoft.datamapper.transform.converter.ScalarValueConversion.convert(ScalarValueConversion.java:126)
    at com.mulesoft.datamapper.transform.DataRecordContext.put(DataRecordContext.java:87)
    at com.mulesoft.datamapper.transform.DataRecordContext.put(DataRecordContext.java:24)
    at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeSetAccessor(ReflectiveAccessorOptimizer.java:308)
    at org.mvel2.compiler.CompiledAccExpression.setValue(CompiledAccExpression.java:54)
    at org.mvel2.ast.DeepAssignmentNode.getReducedValueAccelerated(DeepAssignmentNode.java:92)
    at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
    at org.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123)
    at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119)
    at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:113)
    at org.mvel2.MVEL.executeExpression(MVEL.java:942)
    at org.mule.el.mvel.MVELExpressionExecutor.execute(MVELExpressionExecutor.java:50)
    at com.mulesoft.datamapper.transform.DataMapperExpressionLanguage.evaluate(DataMapperExpressionLanguage.java:106)
    at com.mulesoft.datamapper.transform.MelRecordTransform.transform(MelRecordTransform.java:56)
    at org.jetel.component.Reformat.execute(Reformat.java:273)
    at org.jetel.graph.Node.run(Node.java:465)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)

********************************************************************************

我无法找到导致此异常的原因,我想寻求帮助以解决此问题。

提前谢谢你

【问题讨论】:

    标签: mule datamapper mule-studio mule-component


    【解决方案1】:

    看起来一个空值被传递给format 方法。要了解如何使其“空安全”,您可以查看 Format a Date, allowing null 的示例

    【讨论】:

    • 我已经检查了发送到数据映射器的数据,它没有任何空值,而且如果我在数据映射器中删除日期格式化程序,它也不会抛出错误。你知道为什么日期格式化程序会导致错误吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    相关资源
    最近更新 更多