Estimados Expertos,
Estoy tratando de convertir datos JSON a XML con el siguiente código que fue compartido por Hareesh. Funciona bien cuando se prueba en la pestaña de Prueba de Mapeo de Operación ESR. Pero cuando se ejecuta el mismo payload durante el tiempo de ejecución, muestra un error.
Código
package com.sap.json;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.json.JSONObject;
import com.sap.aii.mapping.api.AbstractTransformation;
import com.sap.aii.mapping.api.StreamTransformationException;
import com.sap.aii.mapping.api.TransformationInput;
import com.sap.aii.mapping.api.TransformationOutput;
public class ConvJsonXml extends AbstractTransformation {
public void transform(TransformationInput in, TransformationOutput out) throws StreamTransformationException {
try {
String sourcexml = ""; String targetxml =""; String line ="";
InputStream ins = in.getInputPayload().getInputStream();
BufferedReader br = new BufferedReader( new InputStreamReader(ins));
while ((line = br.readLine()) != null)
sourcexml +=line+"\n";
br.close();
JSONObject o = new JSONObject(sourcexml);
targetxml = org.json.XML.toString(o);
targetxml = "<root>"+targetxml+"</root>";
out.getOutputPayload().getOutputStream().write(targetxml.getBytes());
}
catch (Exception e) {
throw new StreamTransformationException(e.getMessage());
}
}
}
Carga
{
"items": [
{
"item": {
"Subject": "prueba por DS Ross",
"DocumentID": "55DCE0A476D",
"Sender": "Rebecca",
"SenderName": "usuario1",
"Date": "2013-02-14 11:14:40",
"ClassID": "11"
}
},
{
"item": {
"Subject": "prueba por Nick M",
"DocumentID": "55DCE191D5E47",
"Sender": "Dave Froster",
"SenderName": "usuario11",
"Date": "2013-03-14 11:14:40",
"ClassID": "11"
}
}
]
}
Cuando se prueba en la pestaña de Prueba de Mapeo de Operación, no muestra errores. Pero cuando el mismo payload se recibe del servidor, muestra el error de mapeo
<SAP:Stack> com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error encontrado al ejecutar el mapeo: com.sap.aii.af.service.mapping.MappingException: El programa de mapeo de aplicación com/sap/json/ConvJsonXml lanza una excepción de transformación de flujo:
Un texto JSONObject debe comenzar con '{' en 1 [carácter 2 línea 1] en
com.sap.aii.adapter.soap.web.SOAPHandler.processSOAPtoXMB(SOAPHandler.java:746) en com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:505) en javax.servlet.http.HttpServlet.service(HttpServlet.java:754) en javax.servlet.http.HttpServlet.service(HttpServlet.java:847) en com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202) en
Agradecería la ayuda compartida..
Saludos......