类时间戳上的属性无效

时间:2019-10-14 18:18:46

标签: mule dataweave

我从查询中收到一个ID和一个时间戳,当我尝试输出时间戳时,我收到了无效的属性错误。我正在使用ojdbc7.jar,Dataweave 2.0和Mule 4。

使用转换消息,我可以毫无问题地输出有效负载ID [0]。我尝试将时间戳强制为DateTime并将其格式化为String,但是仍然失败。

以下作品

%dw 2.0
output application/json
---
payload.ID[0]

下面给出错误“类shareBytes上的无效属性名称:oracle.sql.TIMESTAMP。验证在写payload.C​​REATED_DATE.shareBytes的Json时是否存在正确的设置器。”评估表达式:“%dw 2.0”。

%dw 2.0
output application/json
---
payload.CREATED_DATE[0]

下面给出了错误“无法将对象{类:oracle.sql.TIMESTAMP}(org.mule.weave.v2.module.pojo.reader.JavaBeanObjectValue@6f5eee28)强制转换为字符串”

%dw 2.0
output application/json
---
payload.CREATED_DATE as String {format: "dd-MMM-yy h:mm:s"}

我希望第二个或第三个示例返回时间戳。

1 个答案:

答案 0 :(得分:3)

您可以传递以下系统(JVM)属性:oracle.jdbc.J2EE13Compliant = true(作为-Doracle.jdbc.J2EE13Compliant = true)以强制Oracle驱动程序返回java.sql.Timestamp而不是oracle.sql。时间戳-可以强制Dataweave中的java.sql.Timestamp

有关Oracle驱动程序设置的更多信息,请参见https://docs.oracle.com/cd/B28359_01/java.111/b31224/datacc.htm