AKB
AKB

Reputation: 5938

mule json payload to db values returns null from REST

My mule flow:

 <flow name="classmappingFlow1" doc:name="classmappingFlow1">
        <http:inbound-endpoint exchange-pattern="request-response" host="${hostname}" port="${port}" path="insertClass" connector-ref="ConnectorWithoutMuleSession" doc:name="HTTP"/>
        <jersey:resources doc:name="REST">
            <component class="com.mycompany.mulesoft.rest.AccountMappingService"/>
        </jersey:resources>
        <json:json-to-object-transformer doc:name="JSON to Object"/>
        <logger message="Payload======#[payload]" level="INFO" doc:name="Logger"/>
        <logger message="=====Company===#[payload.Company]" level="INFO" doc:name="Logger"/>
        <db:insert config-ref="Oracle_Configuration" doc:name="Database">
            <db:parameterized-query><![CDATA[insert into SIAS_CONFIGURATION values(1, 1,1234,#[payload.Company],'Y','N','Y','you',sysdate,'you',sysdate)]]></db:parameterized-query>
        </db:insert>
    </flow>

Console:

Payload======[{"Company":"KLM","Class":"Y","Location":"N","Department":"Y","EmplId":"1234"}]
=====Company===null

JSON Data:

[
 {
 "Company":"KLM",
 "Class":"Y",
 "Location":"N",
 "Department":"Y",
 "EmplId":"1234"
 }
]

Rest Component:

@POST
@Path("/setClass")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String classSettings(@Payload String content){
    return content;
}

Issue: I am getting null values and no data(empty) inserted to db

Upvotes: 0

Views: 1006

Answers (1)

Anirban Sen Chowdhary
Anirban Sen Chowdhary

Reputation: 8311

Use returnClass="java.util.List" in json:json-to-object-transformer after jersey:resources like the following :-

<json:json-to-object-transformer returnClass="java.util.List" doc:name="JSON to Object"/>

Upvotes: 1

Related Questions