通过 MuleSoft Java 模块将照片加载到 LDAP

Loading Photo to LDAP Via MuleSoft Java module

我这样做可能犯了一个愚蠢的错误。但我正在尝试通过 java 将 jpeg 照片加载到 ldap 并遇到小问题。

目前在 mule-3 中我们使用 invoke java 并将其存储在 ldap 中,当我们从 ldap 下载时我们会得到实际图像。这是它的存储方式

这是高级 java 代码

在 Mule-4 中没有事件上下文,java 模块本身也发生了变化。所以我正在使用类似的 java 程序并尝试加载到 ldap。它正在加载,但是当我下载它时它不是图像。

这就是它在 ldap 中的存储方式,开头似乎有一些额外的内容。下面是我的 java 代码

     %dw 2.0
    import java!imaging::UploadPhotoToAD
    import * from dw::core::Binaries
    import * from dw::core::Numbers
output application/java
---
UploadPhotoToAD::updateEntry(ldap.image as Binary, ldap.userDN, ldap.usersDN, ldap.url, ldap.authDN, ldap.authPassword)

知道这里缺少什么或需要更改什么吗

问题是将 String 用于二进制文件。由于对二进制文件使用字符串,您遇到了 中提到的相同问题。您不应在读​​取或处理图像的任何时候使用字符串。既不在流程中也不在 Java.

尝试在流程中使用 as Binary {class: "byte[]"} 强制 - 已经 - 二进制为字节数组并将 ba 的类型也设置为字节数组 (byte[])。

我不确定在文件以 ldap.image 结束之前读取的文件会发生什么,因此请确保它没有以任何方式进行转换,即使是在表达式中隐式转换也是如此。请记住,在 Mule 4 中,表达式是 DataWeave 转换。