cancel
Showing results for 
Search instead for 
Did you mean: 

cannot import this code as UDF in mapping

former_member440449
Participant
0 Kudos

Hi All,

I have this Java code working as expected in my eclipse and I need to import it into my PI mapping as UDF trying to avoid a Java Mapping.

The code is next one:

package XMLToFlat;

import java.io.BufferedReader;

import java.io.ByteArrayInputStream;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import java.io.ByteArrayOutputStream;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Collection;

import java.util.Iterator;

import java.util.Map;

import com.sap.aii.mapping.api.AbstractTrace;

import com.sap.aii.mapping.api.AbstractTransformation;

import com.sap.aii.mapping.api.Attachment;

import com.sap.aii.mapping.api.DynamicConfiguration;

import com.sap.aii.mapping.api.DynamicConfigurationKey;

import com.sap.aii.mapping.api.InputAttachments;

import com.sap.aii.mapping.api.OutputAttachments;

import com.sap.aii.mapping.api.StreamTransformation;

import com.sap.aii.mapping.api.StreamTransformationConstants;

import com.sap.aii.mapping.api.StreamTransformationException;

import com.sap.aii.mapping.api.TransformationInput;

import com.sap.aii.mapping.api.TransformationOutput;

public class XMLToFlat extends AbstractTransformation {

    InputAttachments inputAttachments = null; 

    OutputAttachments outputAttachments = null; 

    DynamicConfiguration conf = null; 

   

   

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) throws FileNotFoundException, IOException {

        String xml = "PCFbQ0RBVEFbPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y2ZkaTpDb21w cm9iYW50ZSB4bWxuczpjZmRpPSJodHRwOi8vd3d3LnNhdC5nb2IubXgvY2ZkLzMiIHhtbG5zOnhz aT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIEx1Z2FyRXhwZWRp Y2lvbj0iWmFtb3JhIE1pY2hvYWPDg8KhbiIgTnVtQ3RhUGFnbz0iTm8gaWRlbnRpZmljYWRvIiBj ZXJ0aWZpY2Fkbz0iTUlJRWtEQ0NBM2lnQXdJQkFnSVVNREF3TURFd01EQXdNREF5TURJek5EazFN akF3RFFZSktvWklodmNOQVFFRkJRQXdnZ0dWTVRnd05nWURWUVFEREM5QkxrTXVJR1JsYkNCVFpY SjJhV05wYnlCa1pTQkJaRzFwYm1semRISmhZMm5EczI0Z1ZISnBZblYwWVhKcFlURXZNQzBHQTFV RUNnd21VMlZ5ZG1samFXOGdaR1VnUVdSdGFXNXBjM1J5WVdOcHc3TnVJRlJ5YVdKMWRHRnlhV0V4 T0RBMkJnTlZCQXNNTDBGa2JXbHVhWE4wY21GamFjT3piaUJrWlNCVFpXZDFjbWxrWVdRZ1pHVWdi R0VnU1c1bWIzSnRZV05wdzdOdU1TRXdId1lKS29aSWh2Y05BUWtCRmhKaGMybHpibVYwUUhOaGRD NW5iMkl1YlhneEpqQWtCZ05WQkFrTUhVRjJMaUJJYVdSaGJHZHZJRGMzTENCRGIyd3VJRWQxWlhK eVpYSnZNUTR3REFZRFZRUVJEQVV3TmpNd01ERUxNQWtHQTFVRUJoTUNUVmd4R1RBWEJnTlZCQWdN RUVScGMzUnlhWFJ2SUVabFpHVnlZV3d4RkRBU0JnTlZCQWNNQzBOMVlYVm9kTU9wYlc5ak1SVXdF d1lEVlFRdEV3eFRRVlE1TnpBM01ERk9Uak14UGpBOEJna3Foa2lHOXcwQkNRSU1MMUpsYzNCdmJu TmhZbXhsT2lCRFpXTnBiR2xoSUVkMWFXeHNaWEp0YVc1aElFZGhjbVBEcldFZ1IzVmxjbkpoTUI0 WERURXlNVEV4TkRFNU5EVXdNMW9YRFRFMk1URXhOREU1TkRVd00xb3dnZEV4SmpBa0JnTlZCQU1U SFVGQ1FWSlNUMVJGVWtFZ1JFVk1JRVJWUlZKUElGTkJJRVJGSUVOV01TWXdKQVlEVlFRcEV4MUJR a0ZTVWs5VVJWSkJJRVJGVENCRVZVVlNUeUJUUVNCRVJTQkRWakVtTUNRR0ExVUVDaE1kUVVKQlVs SlBWRVZTUVNSRlZGVWs4Z1UwRWdSRVVnUTFZeEpUQWpCZ05WQkMwVEhFRkVWVGd3TURFek1WUXhN Q0F2SUZaQlZrYzFNakF4TURsRFNUa3hIakFjQmdOVkJBVVRGU0F2SUZaQlZrYzFNakF4TURsSVRV NU1SMHd3TkRFUU1BNEdBMVVFQ3hNSFFrOUVSVWRCVXpDQm56QU5CZ2txaGtpRzl3MEJBUUVGQUFP QmpRQXdnWWtDZ1lFQXZjMkdHVk53NWNlVU14Y01kejcxYnJ1SVFRSFVKRnFKcGRPNWZTU0xRR0Ix SFQ3cUkwaS9kRTY0TjFibE1ycWhWNjRoRXNQQkYvY0V4THhaR0E2WHNXL2c3VGowVmxCRzFmWGg2 dk1TLzJ0cnJwejAramFEMitIay9KSDU5blcxUkZKRUV5MjN3NlJKNVJuc0VLN1k3OTRGUDZXL0s0 aElvaDZzQ25VNWF0VUNBd0VBQWFNZE1Cc3dEQVlEVlIwVEFRSC9CQUl3QURBTEJnTlZIUThFQkFN Q0JzQXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBRjJwTFdsbFcwTWdTVkJUWER1VXlBQmtlMDhn OERUZGY2aGNaK0RreGtyTDI1N0xXa01NUHNYNkdCZUxtZ3FyNnZjUEFXU29tZzVtc0Y4czVsd2VG V3U4TElmWHRhd3hXRFB4Y2M2SjRTRGNvSldnRHc3UlkyUUtSUFl1T1RTU3dOWTNUanlZN0tzWXlI Mms2d2pwd1lrSmp5Wk5aUGo4aEkxSVA0VjJZcVBtcXZMMTRZZTJ0ZVFMc2VQL3NmeGNhaHAxMWha MWtyUFlKcGc2MGFnbXY0emRycnpRYXZ4ejUybVFrQ1FRRFh1ajZlWUgvQUdzVSs1RWliZWlKc21p OGZaMmwrdURIYldWZ1IvOGQzaUFvUXFHOTFpMkNvQ0MydEI3ekxaZisrblEwODdYSWVUcy91bnpK d3A1RGlBR09tOEhFdmJqTFg0WWZtcmtIeWZoMTgwPSIgY29uZGljaW9uZXNEZVBhZ289IlBhZ28g ZGUgY29udGFkbyIgZmVjaGE9IjIwMTMtMDEtMjhUMTk6MjI6NTYiIGZvbGlvPSIyMjQiIGZvcm1h RGVQYWdvPSJQYWdvIGVuIHVuYSBzb2xhIGV4aGliaWNpw4PCs24iIG1ldG9kb0RlUGFnbz0iRWZl Y3Rpdm8iIG5vQ2VydGlmaWNhZG89IjAwMDAxMDAwMDAwMjAyMzQ5NTIwIiBzZWxsbz0iVURlNFE5 ekhhL0dGcDdKQytMNkROUjlaR0pKQnNrc0N4WEM4YWJBWE1MSnpNRWVwME9IZjZkUGlFblMrMms1 OVFKKzJpZGdPamxlaTZGM01kNkhEMWRvWnFPa2VjOUdKNmxtS0JVekNRUk4xcGlUQlJwbDR6MitH VjVzWGMya0t6cjA1S0FJdGdVdlRVRlFCelJXMWhJSUQyem55WVEzMUNNRjdVQWNWU2c4PSIgc3Vi VG90YWw9IjI1NzAuMTkiIHRpcG9EZUNvbXByb2JhbnRlPSJpbmdyZXNvIiB0b3RhbD0iMzY3Mi4x NCIgdmVyc2lvbj0iMy4yIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc2F0LmdvYi5t eC9jZmQvMyBodHRwOi8vd3d3LnNhdC5nb2IubXgvc2l0aW9faW50ZXJuZXQvY2ZkLzMvY2ZkdjMy LnhzZCI+PGNmZGk6RW1pc29yIG5vbWJyZT0iQUJBUlJPVEVSQSBERUwgRFVFUk8gUy5BIERFIEMu Vi4iIHJmYz0iQURVODAwMTMxVDEwIj48Y2ZkaTpEb21pY2lsaW9GaXNjYWwgY2FsbGU9IkFWLiBE RUwgQVJCT0wiIGNvZGlnb1Bvc3RhbD0iNTk2OTAiIGNvbG9uaWE9IlpBTU9SQSIgZXN0YWRvPSJN aWNob2Fjw4PCoW4iIGxvY2FsaWRhZD0iWkFNT1JBIiBtdW5pY2lwaW89IlpBTU9SQSIgbm9FeHRl cmlvcj0iMTIwMCIgcGFpcz0iTcODwql4aWNvIiAvPjxjZmRpOkV4cGVkaWRvRW4gY2FsbGU9IkF2 LiBkZWwgQXJib2wiIGNvZGlnb1Bvc3RhbD0iNTk2OTAiIGNvbG9uaWE9IlphbW9yYSIgZXN0YWRv PSJNaWNob2Fjw4PCoW4iIGxvY2FsaWRhZD0iWmFtb3JhIiBtdW5pY2lwaW89IlphbW9yYSIgbm9F eHRlcmlvcj0iMTIwMCIgcGFpcz0iTcODwql4aWNvIiAvPjxjZmRpOlJlZ2ltZW5GaXNjYWwgUmVn aW1lbj0iUsODwqlnaW1lbiBHZW5lcmFsIGRlIExleSBkZSBsYXMgUGVyc29uYXMgTW9yYWxlcyIg Lz48L2NmZGk6RW1pc29yPjxjZmRpOlJlY2VwdG9yIG5vbWJyZT0iQ0xJRU5URSBHRU5FUkFMIE1P UkVMSUEiIHJmYz0iQUlNSjc1MTEyNzlGMSI+PGNmZGk6RG9taWNpbGlvIGxvY2FsaWRhZD0iTU9S RUxJQSIgcGFpcz0iTcODwql4aWNvIiAvPjwvY2ZkaTpSZWNlcHRvcj48Y2ZkaTpDb25jZXB0b3M+ PGNmZGk6Q29uY2VwdG8gY2FudGlkYWQ9IjEuMDAwIiBkZXNjcmlwY2lvbj0iSEFSIEhPVENBS0VT IEFVTlQgSkVNSU1BICAgICAgICAxMC81MDBHUiIgaW1wb3J0ZT0iMTc4Ljg3IiBub0lkZW50aWZp Y2FjaW9uPSIwMDAwMDAwMDAwMDAwMDA3MTgiIHVuaWRhZD0iQ0oiIHZhbG9yVW5pdGFyaW89IjE3 OC44NyIgLz48Y2ZkaTpDb25jZXB0byBjYW50aWRhZD0iMS4wMDAiIGRlc2NyaXBjaW9uPSJQw4PC kSBBQlNPUlNFQyBNRURJQU5PICAgICAgICAgICAgICAgNi8xNFBaIiBpbXBvcnRlPSIxMzYuNzQi IG5vSWRlbnRpZmljYWNpb249IjAwMDAwMDAwMDAwMDAwMDAwOCIgdW5pZGFkPSJDSiIgdmFsb3JV bml0YXJpbz0iMTM2Ljc0IiAvPjxjZmRpOkNvbmNlcHRvIGNhbnRpZGFkPSIxLjAwMCIgZGVzY3Jp cGNpb249IlJPTVAgSE9MQU5ERVNBICAgICAgICAgICAgICAgICAgICAgMTIvTFQiIGltcG9ydGU9 IjUyMi4xMCIgbm9JZGVudGlmaWNhY2lvbj0iMDAwMDAwMDAwMDAwMDAyMzM2IiB1bmlkYWQ9IkNK IiB2YWxvclVuaXRhcmlvPSI1MjIuMTAiIC8+PGNmZGk6Q29uY2VwdG8gY2FudGlkYWQ9IjEuMDAw IiBkZXNjcmlwY2lvbj0iTElDT1IgS0FMSFVBIENBRkUgICAgICAgICAgICAgICAxMi85ODBNTCIg aW1wb3J0ZT0iODYwLjAwIiBub0lkZW50aWZpY2FjaW9uPSIwMDAwMDAwMDAwMDAwMDE3MzciIHVu aWRhZD0iQ0oiIHZhbG9yVW5pdGFyaW89Ijg2MC4wMCIgLz48Y2ZkaTpDb25jZXB0byBjYW50aWRh ZD0iMS4wMDAiIGRlc2NyaXBjaW9uPSJCUiBQUkVTSURFTlRFIENMQVNJQ08gNTAgQU5JVkVSIDI0 LzIwME1MIiBpbXBvcnRlPSIyODYuMjciIG5vSWRlbnRpZmljYWNpb249IjAwMDAwMDAwMDAwMDAw MTcwMCIgdW5pZGFkPSJDSiIgdmFsb3JVbml0YXJpbz0iMjg2LjI3IiAvPjxjZmRpOkNvbmNlcHRv IGNhbnRpZGFkPSIxLjAwMCIgZGVzY3JpcGNpb249Ik1FWkNMQSBQUkVTSURFTkNPTEEgICAgICAg ICAgICAgMjQvMzQ1TUwiIGltcG9ydGU9IjE2MS40OSIgbm9JZGVudGlmaWNhY2lvbj0iMDAwMDAw MDAwMDAwMDAxNjkzIiB1bmlkYWQ9IkNKIiB2YWxvclVuaXRhcmlvPSIxNjEuNDkiIC8+PGNmZGk6 Q29uY2VwdG8gY2FudGlkYWQ9IjEuMDAwIiBkZXNjcmlwY2lvbj0iQ0VSViBNT0RFTE8gRVNQRUNJ QUwgTEFUQSAgICAgNC82LzM1NU1MIiBpbXBvcnRlPSIxNDkuMDgiIG5vSWRlbnRpZmljYWNpb249 IjAwMDAwMDAwMDAwMDAwMzQzNyIgdW5pZGFkPSJDSiIgdmFsb3JVbml0YXJpbz0iMTQ5LjA4IiAv PjxjZmRpOkNvbmNlcHRvIGNhbnRpZGFkPSIxLjAwMCIgZGVzY3JpcGNpb249IkNJRyBGQVJPUyAg ICAgICAgICAgICAgICAgICAgICAgICAgIDE1UFoiIGltcG9ydGU9IjI3NS42NCIgbm9JZGVudGlm aWNhY2lvbj0iMDAwMDAwMDAwMDAwMDAwNzQ3IiB1bmlkYWQ9IkVYSCIgdmFsb3JVbml0YXJpbz0i Mjc1LjY0IiAvPjwvY2ZkaTpDb25jZXB0b3M+PGNmZGk6SW1wdWVzdG9zIHRvdGFsSW1wdWVzdG9z VHJhc2xhZGFkb3M9IjQ4MS44MyI+PGNmZGk6VHJhc2xhZG9zPjxjZmRpOlRyYXNsYWRvIGltcG9y dGU9IjAuMDAiIGltcHVlc3RvPSJJVkEiIHRhc2E9IjAuMDAiIC8+PGNmZGk6VHJhc2xhZG8gaW1w b3J0ZT0iNDgxLjgzIiBpbXB1ZXN0bz0iSVZBIiB0YXNhPSIxNi4wMCIgLz48L2NmZGk6VHJhc2xh ZG9zPjwvY2ZkaTpJbXB1ZXN0b3M+PGNmZGk6QWRkZW5kYSB4bWxuczptcG89Imh0dHA6Ly93d3cu bWF5cG8uY29tLm14IiAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5tYXlwby5jb20u bXgvZmUgIGh0dHA6Ly93d3cubWF5cG8uY29tLm14L2ZlL2FkZGVuZGEueHNkIj48bXBvOlByb3Zl ZWRvciBSRkM9IkFJTUo3NTExMjc5RjEiLz48bXBvOkZhY3R1cmEgTnVtZXJvRmFjdHVyYVByb3Zl ZWRvcj0iNzY1Mzk1IiBSRkNSZWNlcHRvcj0iUkVBSTA2MDM4Nk02NSIvPjwvY2ZkaTpBZGRlbmRh PjxjZmRpOkNvbXBsZW1lbnRvPjx0ZmQ6VGltYnJlRmlzY2FsRGlnaXRhbCB4bWxuczp0ZmQ9Imh0 dHA6Ly93d3cuc2F0LmdvYi5teC9UaW1icmVGaXNjYWxEaWdpdGFsIiB4c2k6c2NoZW1hTG9jYXRp b249Imh0dHA6Ly93d3cuc2F0LmdvYi5teC9UaW1icmVGaXNjYWxEaWdpdGFsIGh0dHA6Ly93d3cu c2F0LmdvYi5teC9UaW1icmVGaXNjYWxEaWdpdGFsL1RpbWJyZUZpc2NhbERpZ2l0YWwueHNkIiBz ZWxsb0NGRD0iVURlNFE5ekhhL0dGcDdKQytMNkROUjlaR0pKQnNrc0N4WEM4YWJBWE1MSnpNRWVw ME9IZjZkUGlFblMrMms1OVFKKzJpZGdPamxlaTZGM01kNkhEMWRvWnFPa2VjOUdKNmxtS0JVekNR Uk4xcGlUQlJwbDR6MitHVjVzWGMya0t6cjA1S0FJdGdVdlRVRlFCelJXMWhJSUQyem55WVEzMUNN RjdVQWNWU2c4PSIgRmVjaGFUaW1icmFkbz0iMjAxMy0wMS0yOFQxOToyMzowMSIgVVVJRD0iOEIx ODQxNkItM0NDMy00NTY4LThGOTEtMTA1QzdBNEY3N0Y1IiBub0NlcnRpZmljYWRvU0FUPSIyMDAw MTAwMDAwMDEwMDAwNTc2MSIgdmVyc2lvbj0iMS4wIiBzZWxsb1NBVD0iTHBCZ0xXdVVIUWRMOVVZ ZUN3cHhQY3JXY2tENk01a3JyVVFlY094dzBkL2tlYklTZEVRN2FocVVhTVVsb3dYZ2FGMDVjL2hD R0hqSkpIYkhYeEJ5bWZ3emRlTnF3eEZxaTd3bThrQmZYNWR1dk5UUkxtSjk3bVJQZURVWUh4VERp Lzk5eFR0VDNYNnRZTnF0a1pYSUJGbmxaZEVEbjNVVHJ0U0dhQWpkbE5jPSIgLz48L2NmZGk6Q29t cGxlbWVudG8+PC9jZmRpOkNvbXByb2JhbnRlPl1dPg==";

       

        try {

            xml = "";

            BufferedReader br = new BufferedReader(new FileReader(new File("C://XMLFileTest.txt")));

            String line = null;

            while ((line = br.readLine()) != null) {

                xml += line;

            }

            System.out.println(fromXML2TXT(xml, "|", "\n", "UTF-8"));

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public void transform(TransformationInput tf_in, TransformationOutput tf_out) 

    throws StreamTransformationException { 

inputAttachments = tf_in.getInputAttachments(); 

outputAttachments = tf_out.getOutputAttachments(); 

conf = tf_in.getDynamicConfiguration(); 

this.execute(tf_in.getInputPayload().getInputStream(), tf_out 

        .getOutputPayload().getOutputStream()); 

    /*

     * Method to recover the content from xml file and put it in a string

     */

   

    public void execute(InputStream in, OutputStream out) throws StreamTransformationException

    {

   

    }

   

    public static String fromXML2TXT(String xml, String fieldSeparator,

            String segmentSeparator, String encoding) {

        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();

        StringBuilder sbText = new StringBuilder();

        StringBuilder sbSubline = new StringBuilder();

        try {

            DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();

            Document doc = docBuilder.parse(new ByteArrayInputStream(xml.getBytes(encoding)));

            Node rootNode = doc.getChildNodes().item(0);

            NodeList nlSegment = rootNode.getChildNodes();/*Also It includes new lines*/

            String line = "";

            String subline = "";

            //for segments

            for (int i = 0; i < nlSegment.getLength(); i++) {

                line = "";

                NodeList nlField = nlSegment.item(i).getChildNodes();

                if (nlSegment.item(i).getNodeType() == 1) /*only fields*/ {

                    for (int j = 0; j < nlField.getLength(); j++) {

                        if (nlField.item(j).getNodeType() == 1) /*only fields*/ {

                            if (nlField.item(j).getChildNodes().getLength() <= 1) {

                                line = line + nlField.item(j).getTextContent() + fieldSeparator;

                            } else {/*for nodes at thrird level*/

                                //new subsegment

                                subline = "";

                                sbSubline.append(segmentSeparator);

                                for (int k = 0; k < nlField.item(j).getChildNodes().getLength(); k++) {

                                    if (nlField.item(j).getChildNodes().item(k).getNodeType() == 1) {

                                        subline = subline + nlField.item(j).getChildNodes().item(k).getTextContent() + fieldSeparator;

                                    }

                                }

                                sbSubline.append(subline.substring(0, subline.length() - 1));

                            }

                        }

                    }

                    //Add line content removing last "fieldSeparator";

                    sbText.append(line.substring(0, line.length() - 1));

                    //add sublines

                    sbText.append(sbSubline);

                    sbSubline = new StringBuilder();

                    //Add segmentSeparator except for the last line

                    if (i < nlSegment.getLength() - 1) {

                        sbText.append(segmentSeparator);

                    }

                }

            }

        } catch (Exception e) {

            e.printStackTrace();

            throw new RuntimeException("Error during generating Flat format "

                    + e.getMessage());

        }

        return sbText.toString();

    }

}

I just want to receive as XML the whole mapping (var1 as string) and send it to a single field as FLAT.

How should I be doing this in the UDF? It is throwing me an exception but I don't get details on the same.

Accepted Solutions (1)

Accepted Solutions (1)

smavachee
Active Contributor
0 Kudos

I guess this can be done using the standard graphical mapping if you are on SAP PI 7.1, isnt.! 

Jyothi has been demonstrated it with more better way here...also use of copyXML feature significantly reduce all coding efforts.

*. Sorry Cloudio, eventually its not a resolution afer all or what you are looking for but an alternative I have suggested.

Hope it helps.!

Regards,

Sunil

former_member440449
Participant
0 Kudos

Sunil,

yes, it's not the solution that I am looking for but I appreciate your help anyway.

Per my poor Java abilities I am trying just to import that code as an UDF

hopefully someone else can help me on that.

Former Member
0 Kudos

Hi Claudio,

Not sure but you may import the class as jar file in imported archive and then add import statement for the class in UDF or function library.

Then call the method of class in UDF.

Please check this link:

http://scn.sap.com/thread/3289295

Regards,

Beena

former_member440449
Participant
0 Kudos

Hi Beena,

Thanks for the response.

Actually doesn't seem to be a class issue.

I got this error while testing:

"Problem when Displaying Queue"

"Exception:[java.lang.RuntimeException: Error during generating Flat format ] in class com.sap.xi.tf._MessageMapping_ method XMLToString"

Any other suggestions? Has anyone tried to code it in a message mapping?

nabendu_sen
Active Contributor
former_member440449
Participant
0 Kudos

Thanks Nabendu, that's a good blog that I add to FF.

Finally I got solved the issue:

Issue is due to the code line

Document doc = docBuilder.parse(new ByteArrayInputStream(payloadXML.getBytes(encoding)));

Corrected code line is

Document  doc = docBuilder.parse(new InputSource(new StringReader(payloadXML)));

Its going to the exception block at his line only. Because you have used payloadXML.getBytes(encoding), actually here payloadXML is a string , not an XML.  So first we need to convert that string to an xml.

Thanks all for providing some help!

Answers (0)