gpt4 book ai didi

java - Mulesoft Dataweave,LDAP 到 SOAP 大消息按一定大小截断。尺寸限制?

转载 作者:行者123 更新时间:2023-12-02 02:54:15 27 4
gpt4 key购买 nike

(最后的问题tldr)

因此,Mule“转换消息”组件的任务是从 LDAP 目录服务获取大量用户信息,并使用 SOAP 将其提供给旧数据库端点。相当简单的变换东西。

主要!关于此操作的是必须提供给端点的消息的大小。整个有效负载必须在单个消息中提供,否则服务将删除不属于有效负载的所有条目(没有显式的“删除”服务)。这是一个问题,因为目录中的用户数量大约为 20,000,导致每条消息的大小约为 5MB 左右。

我在 Mule Studio 中的流程目前适用于从 LDAP 组件返回的少量用户。从端点成功返回,我可以看到旧环境中更新的数据。当将此应用到更“生产现实”的负载时,Web 服务使用者 (SOAP) 会因奇怪的异常(意外的 EOF/字符)而崩溃。

message flow

所以我在中间插入了一个文件组件来转储检查发送给消费者的消息。消息确实在完成之前就被剪切了,这就是 EOF 的来源。

这是 Dataweave 中的转换脚本。

%output application/xml 
%namespace ns0 test.namespace.com
---
{
ns0#updateContact: {
ns0#ContactType: "Primary",
ns0#ContactDetails: {
(payload map {
(ns0#ContactDetailElem: {
ns0#personID: $.personID,
ns0#contactDetail: $.desc
}) when $.personID != null
})
}
}
}

预期输出如下,并且以较小的负载成功发生。

<?xml version='1.0' encoding='windows-1252'?>
<ns0:updateContact xmlns:ns0="test.namespace.com">
<ns0:ContactType>Primary</ns0:ContactType>
<ns0:ContactDetails>
<../>
<ns0:ContactDetailElem>
<ns0:personID>{Integer}</ns0:personID>
<ns0:contactDetail>{String.detail}</ns0:contactDetail>
</ns0:ContactDetailElem>
<../>
</ns0:ContactDetails>
</ns0:updateContact>

在大负载上,文件末尾会发生以下情况

<?xml version='1.0' encoding='windows-1252'?>
<ns0:updateContact xmlns:ns0="test.namespace.com">
<ns0:ContactType>Primary</ns0:ContactType>
<ns0:ContactDetails>
<../>
<ns0:ContactDetailElem>
<ns0:personID>{Integer}</ns0:personID>
<ns0:contactDetail>{String.detail}</ns0:contactDetail>
</ns0:ContactDeta

这看起来像是一个拼写错误,但看起来像是消息在完成之前就被剪切了。文件大小始终停在 3,553,099 个字符。当然,这会使流程崩溃,因为 xml 无效。

问题是 Dataweave 转换器可以创建的消息大小是否有限制?如果不是合法的错误而是配置问题,我在哪里可以找到此设置?我环顾四周,但没有发现任何人遇到此类问题。

TL;DR:Dataweave 转换消息的大小限制约为 3.38MB 吗?

异常引起:com.ctc.wstx.exc.WstxEOFException:序言中出现意外的 EOF

PS:输入此内容后,我找到了有关 dataweave 流的文档,看看这是否可以帮助我的情况。否则,我正在考虑实现一种解决方法来在 dataweave 外部构造消息,然后将其传递给消费者。

最佳答案

您使用的是 Mule 版本 3.8.3 吗?尝试3.8.4,它修复了DataWeave中的一个错误,该错误导致某些情况下字符串被截断。

关于java - Mulesoft Dataweave,LDAP 到 SOAP 大消息按一定大小截断。尺寸限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43360180/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com