云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云解析_数据库的作用_哪家好

小七 141 0

人工智能客服_分布式_云服务器的主机

对于复杂的映射需求,使用Groovy脚本是操纵消息体的最佳方法。正如您所注意到的,您可以选择从消息体中获取不同的Java类型。我做了一些研究,以找出下面是什么和可用的选项是什么(哪个班级)

让我们先得到一个错误:

错误:

这个错误列出了很多选项。但是你知道你也可以得到一个文档对象吗?

为了进行比较,SAP帮助文档只列出了getBody方法的这些类型:

String输入流byte[]

转换功能来自Apache Camel的类型转换器:https://camel.apache.org/manual/latest/type-converter.html

遗憾的是,没有详尽的列表,微博淘客,类型转换器非常动态。在Apache Camel中使用自定义类来传递数据是很常见的。

setBody(Object)

您也可以在脚本末尾使用setBody方法来减少代码:

您可以尝试使用这些类型,大淘客网,但是您应该检查结果!setBody方法甚至接受groovy.util.Node节点但它不会将其转换为XML!

脚本:

结果:

性能

如文档所述,如果您将InputStream转换为字符串,然后再次解析为XML对象,您将根据消息正文大小支付性能罚款。上述错误告诉我们的另一件事是,消息作为InputStream存储在内存中。因此,尽可能使用InputStream及其包装器是安全的。

每条消息不必要的资源使用:

更好:

结论

在开始时不要考虑一些冗长的转换代码。你可能有比你想象的更多的选择!

另一个想法:在SAP PI/PO中,输入流和输出流都由我们指尖上的引用给出。在CPI中,Groovy函数必须在进一步处理开始之前返回。因此,怎么做淘客推广,系统无法针对已写入的字节进行优化,写入OutputStream不会带来额外的价值。

我想知道CPI是否会在未来允许一些流式/反应式集成。如果我们可以从一个SFTP/HTTP请求、进程中一部分一部分地读取一个大文件(允许部分处理),实时大数据,然后同时将其写入其他地方,云翌通信,有什么可能性呢?