首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mule 4抛出错误中将JSON转换为CLOB

在Mule 4抛出错误中将JSON转换为CLOB
EN

Stack Overflow用户
提问于 2022-06-05 22:35:03
回答 2查看 234关注 0票数 0

我正在将Mule应用程序从3.9.5转换到4.4.1。我试图将json响应从http请求写入oracle表中的clob列,并得到一个错误。

无法从类型为'class java.util.linkedhashmap'的值创建闭锁

我试图引入如下所示的数据编织转换,但仍然收到上述相同的错误。任何帮助都将不胜感激。

代码语言:javascript
复制
<http:request method="GET" config-ref="HTTP_Request_Configuration" path="${http.path}/{report_id}" doc:name="Request" doc:id="e596773f-d948-47fb-9cee-c23cf1a4dfdc" >
                        <http:headers ><![CDATA[#[output application/java
    ---
    {
        "Authorization" : "Bearer " ++ vars.accessToken,
        "Accept" : "application/json"
    }]]]></http:headers>
                <http:uri-params ><![CDATA[#[output application/java
    ---
    {
        "report_id" : vars.expenseReportID
    }]]]></http:uri-params>
</http:request>
<ee:transform doc:name="Transform Message" doc:id="5d6cc3d7-0236-499a-9f93-1a2b2f331ae8">

<ee:message>

<ee:set-payload><![CDATA[%dw 2.0

output application/java

---

payload] ]></ee:set-payload>

</ee:message>

</ee:transform>

<db:insert doc:name="DB_Insert" doc:id="09010c0a-7a89-4d9c-926f-eaf7ac36b9da" config-ref="Database_Config">

<db:sql>INSERT INTO stg_clientesalesforce (id_carga, contenido_json)

VALUES (:id_carga, :contenido_json)</db:sql>

<db:input-parameters><![CDATA[# [{"id_carga" : 12,

"contenido_json": payload}]] ]></db:input-parameters>

</db:insert>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-06 03:59:28

CLOB只是一个非常大的字符串(字符、大对象),所以您只需要将负载作为字符串。您可以为此使用write函数。

payload write "application/json"

票数 2
EN

Stack Overflow用户

发布于 2022-06-05 23:24:47

它不是JSON,因为应用程序将响应从HTTP请求转换为转换组件中的Java对象。从显示实际类的错误消息(class java.util.linkedhashmap,一个HashMap)中也可以清楚地看到这一点。完全移除转换可能足以使其工作。

更新:我忽略了实际上导致错误的转换是<db:input-parameters>内部将有效负载转换为参数的转换。见@Harshank Bansal回答,而不是这个答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72511548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档