Problem while unpacking ISO message

1,177 views
Skip to first unread message

Gaurav Kumar

unread,
Nov 7, 2016, 12:29:02 PM11/7/16
to jPOS Users
Dear all,


I am using following code : 
package com.canvasm.fi.tests.gaurav;

import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.packager.GenericPackager;

import com.canvasm.fi.utils.ByteUtil;

public class UnpackISOMessage {
    public static void main(String[] args) {
        UnpackISOMessage iso = new UnpackISOMessage();
        try {
            ISOMsg isoMsg = iso.parseISOMessage();
            iso.printISOMessage(isoMsg);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public ISOMsg parseISOMessage() throws Exception {
        //String message = "02003220000000808000000010000000001500120604120000000112340001840";
    //String message = "02553032303046323343343644313239453039323030303030303030303035323030303032313139353036313037313032323336363032333732343430323031303030303030313530303030303039303931353533303420202020203131363533303430393039313930313630313130353130303130303132443030303030303030303635303631303733323030303030303030303030303030303030303030303030303030303030303030323033393030303030303038363031313035303532333745424E303030303030303035323331454E472052562052554D554F4B4F524F202020202020205256202020202020202020202052564E4735363633303330333033303330333033303330323030394632363038333632323846414238364439453342423946323730313430394631303230304641353031363230323030303630303030303030303030303030303030303030463031414141414141414141414141414141414141414141414141414141413946333730343538324531423333394633363032303234313935303534323830323430303030394130333136303933303943303130303946303230363030303030303030303031353546324130323039343938323032353830303946314130323037393239303337303830333730383033373038303337303834313437303639303337303831303532353130333635313330313535313132303135313333343430303230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030";
    String message = "3032303046323343343644313239453039323030303030303030303035323030303032313139353036313037313032323336363032333732343430323031303030303030313530303030303039303931353533303420202020203131363533303430393039313930313630313130353130303130303132443030303030303030303635303631303733323030303030303030303030303030303030303030303030303030303030303030323033393030303030303038363031313035303532333745424E303030303030303035323331454E472052562052554D554F4B4F524F202020202020205256202020202020202020202052564E4735363633303330333033303330333033303330323030394632363038333632323846414238364439453342423946323730313430394631303230304641353031363230323030303630303030303030303030303030303030303030463031414141414141414141414141414141414141414141414141414141413946333730343538324531423333394633363032303234313935303534323830323430303030394130333136303933303943303130303946303230363030303030303030303031353546324130323039343938323032353830303946314130323037393239303337303830333730383033373038303337303834313437303639303337303831303532353130333635313330313535313132303135313333343430303230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030";
        System.out.printf("Message = %s%n", message);
        byte[] bb= message.getBytes();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < bb.length; i++) {
sb.append(ByteUtil.byteToHex(bb[i]));
}
        message=sb.toString();
        
        try {  
        GenericPackager packager = new GenericPackager(UnpackISOMessage.class.getResource("/fields.xml").getFile());
            ISOMsg isoMsg = new ISOMsg();
            isoMsg.setPackager(packager);
            isoMsg.unpack(message.getBytes());
            return isoMsg;
        } catch (ISOException e) {
            throw new Exception(e);
        }
    }

    public void printISOMessage(ISOMsg isoMsg) {
        try {
            System.out.printf("MTI = %s%n", isoMsg.getMTI());
            for (int i = 1; i <= isoMsg.getMaxField(); i++) {
                if (isoMsg.hasField(i)) {
                    System.out.printf("Field (%s) = %s%n", i, isoMsg.getString(i));
                }
            }
        } catch (ISOException e) {
            e.printStackTrace();
        }
    }
}


but when I am running it gives me this 

Message = 3032303046323343343644313239453039323030303030303030303035323030303032313139353036313037313032323336363032333732343430323031303030303030313530303030303039303931353533303420202020203131363533303430393039313930313630313130353130303130303132443030303030303030303635303631303733323030303030303030303030303030303030303030303030303030303030303030323033393030303030303038363031313035303532333745424E303030303030303035323331454E472052562052554D554F4B4F524F202020202020205256202020202020202020202052564E4735363633303330333033303330333033303330323030394632363038333632323846414238364439453342423946323730313430394631303230304641353031363230323030303630303030303030303030303030303030303030463031414141414141414141414141414141414141414141414141414141413946333730343538324531423333394633363032303234313935303534323830323430303030394130333136303933303943303130303946303230363030303030303030303031353546324130323039343938323032353830303946314130323037393239303337303830333730383033373038303337303834313437303639303337303831303532353130333635313330313535313132303135313333343430303230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030
java.lang.Exception: org.jpos.iso.ISOException: org.jpos.iso.IFA_LLLCHAR: Problem unpacking field 36 (org.jpos.iso.ISOException: Field length 303 too long. Max: 104) unpacking field=36, consumed=126
at com.canvasm.fi.tests.gaurav.UnpackISOMessage.parseISOMessage(UnpackISOMessage.java:40)
at com.canvasm.fi.tests.gaurav.UnpackISOMessage.main(UnpackISOMessage.java:13)
Caused by: org.jpos.iso.ISOException: org.jpos.iso.IFA_LLLCHAR: Problem unpacking field 36 (org.jpos.iso.ISOException: Field length 303 too long. Max: 104) unpacking field=36, consumed=126
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:268)
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:454)
at com.canvasm.fi.tests.gaurav.UnpackISOMessage.parseISOMessage(UnpackISOMessage.java:37)
... 1 more


fields.xml is as follows :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager SYSTEM "genericpackager.dtd"><isopackager>
<isofield id="0" length="4" name="MESSAGE TYPE INDICATOR" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="1" length="16" name="BIT MAP" class="org.jpos.iso.IFA_BITMAP"/>
<isofield id="2" length="19" name="SECRET ID" class="org.jpos.iso.IFA_LLNUM"/>
<isofield id="3" length="6" name="PROCESSING CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="4" length="12" name="AMOUNT, TRANSACTION" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="5" length="12" name="AMOUNT, SETTLEMENT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="6" length="12" name="AMOUNT, CARDHOLDER BILLING" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="7" length="10" name="TRANSMISSION DATE AND TIME" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="8" length="8" name="AMOUNT, CARDHOLDER BILLING FEE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="9" length="8" name="CONVERSION RATE, SETTLEMENT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="10" length="8" name="CONVERSION RATE, CARDHOLDER BILLING" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="11" length="6" name="SYSTEM TRACE AUDIT NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="12" length="6" name="TIME, LOCAL TRANSACTION" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="13" length="4" name="DATE, LOCAL TRANSACTION" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="14" length="4" name="DATE, EXPIRATION" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="15" length="4" name="DATE, SETTLEMENT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="16" length="4" name="DATE, CONVERSION" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="17" length="4" name="DATE, CAPTURE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="18" length="4" name="MERCHANTS TYPE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="19" length="3" name="ACQUIRING INSTITUTION COUNTRY CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="20" length="3" name="PAN EXTENDED COUNTRY CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="21" length="3" name="FORWARDING INSTITUTION COUNTRY CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="22" length="3" name="POINT OF SERVICE ENTRY MODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="23" length="3" name="CARD SEQUENCE NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="24" length="3" name="NETWORK INTERNATIONAL IDENTIFIEER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="25" length="2" name="POINT OF SERVICE CONDITION CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="26" length="2" name="POINT OF SERVICE PIN CAPTURE CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="27" length="1" name="AUTHORIZATION IDENTIFICATION RESP LEN" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="28" length="9" name="AMOUNT, TRANSACTION FEE" class="org.jpos.iso.IFA_AMOUNT"/>
<isofield id="29" length="9" name="AMOUNT, SETTLEMENT FEE" class="org.jpos.iso.IFA_AMOUNT"/>
<isofield id="30" length="9" name="AMOUNT, TRANSACTION PROCESSING FEE" class="org.jpos.iso.IFA_AMOUNT"/>
<isofield id="31" length="9" name="AMOUNT, SETTLEMENT PROCESSING FEE" class="org.jpos.iso.IFA_AMOUNT"/>
<isofield id="32" length="11" name="ACQUIRING INSTITUTION IDENT CODE" class="org.jpos.iso.IFA_LLNUM"/>
<isofield id="33" length="11" name="FORWARDING INSTITUTION IDENT CODE" class="org.jpos.iso.IFA_LLNUM"/>
<isofield id="34" length="28" name="PAN EXTENDED" class="org.jpos.iso.IFA_LLCHAR"/>
<isofield id="35" length="37" name="TRACK 2 DATA" class="org.jpos.iso.IFA_LLNUM"/>
<isofield id="36" length="104" name="TRACK 3 DATA" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="37" length="12" name="RETRIEVAL REFERENCE NUMBER" class="org.jpos.iso.IF_CHAR"/>
<isofield id="38" length="6" name="AUTHORIZATION IDENTIFICATION RESPONSE" class="org.jpos.iso.IF_CHAR"/>
<isofield id="39" length="2" name="RESPONSE CODE" class="org.jpos.iso.IF_CHAR"/>
<isofield id="40" length="3" name="SERVICE RESTRICTION CODE" class="org.jpos.iso.IF_CHAR"/>
<isofield id="41" length="8" name="CARD ACCEPTOR TERMINAL IDENTIFICACION" class="org.jpos.iso.IF_CHAR"/>
<isofield id="42" length="15" name="CARD ACCEPTOR IDENTIFICATION CODE" class="org.jpos.iso.IF_CHAR"/>
<isofield id="43" length="40" name="CARD ACCEPTOR NAME/LOCATION" class="org.jpos.iso.IF_CHAR"/>
<isofield id="44" length="25" name="ADITIONAL RESPONSE DATA" class="org.jpos.iso.IFA_LLCHAR"/>
<isofield id="45" length="76" name="TRACK 1 DATA" class="org.jpos.iso.IFA_LLCHAR"/>
<isofield id="46" length="999" name="ADITIONAL DATA - ISO" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="47" length="999" name="ADITIONAL DATA - NATIONAL" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="48" length="999" name="ADITIONAL DATA - PRIVATE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="49" length="3" name="CURRENCY CODE, TRANSACTION" class="org.jpos.iso.IF_CHAR"/>
<isofield id="50" length="3" name="CURRENCY CODE, SETTLEMENT" class="org.jpos.iso.IF_CHAR"/>
<isofield id="51" length="3" name="CURRENCY CODE, CARDHOLDER BILLING" class="org.jpos.iso.IF_CHAR"/>
<isofield id="52" length="16" name="PIN DATA" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="53" length="16" name="SECURITY RELATED CONTROL INFORMATION" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="54" length="120" name="ADDITIONAL AMOUNTS" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="55" length="999" name="RESERVED ISO" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="56" length="999" name="RESERVED ISO" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="57" length="999" name="RESERVED NATIONAL" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="58" length="999" name="RESERVED NATIONAL" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="59" length="999" name="RESERVED NATIONAL" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="60" length="999" name="RESERVED PRIVATE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="61" length="999" name="RESERVED PRIVATE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="62" length="999" name="RESERVED PRIVATE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="63" length="999" name="RESERVED PRIVATE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="64" length="8" name="MESSAGE AUTHENTICATION CODE FIELD" class="org.jpos.iso.IFA_BINARY"/>
<isofield id="65" length="1" name="BITMAP, EXTENDED" class="org.jpos.iso.IFA_BINARY"/>
<isofield id="66" length="1" name="SETTLEMENT CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="67" length="2" name="EXTENDED PAYMENT CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="68" length="3" name="RECEIVING INSTITUTION COUNTRY CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="69" length="3" name="SETTLEMENT INSTITUTION COUNTRY CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="70" length="3" name="NETWORK MANAGEMENT INFORMATION CODE" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="71" length="4" name="MESSAGE NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="72" length="4" name="MESSAGE NUMBER LAST" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="73" length="6" name="DATE ACTION" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="74" length="10" name="CREDITS NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="75" length="10" name="CREDITS REVERSAL NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="76" length="10" name="DEBITS NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="77" length="10" name="DEBITS REVERSAL NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="78" length="10" name="TRANSFER NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="79" length="10" name="TRANSFER REVERSAL NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="80" length="10" name="INQUIRIES NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="81" length="10" name="AUTHORIZATION NUMBER" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="82" length="12" name="CREDITS, PROCESSING FEE AMOUNT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="83" length="12" name="CREDITS, TRANSACTION FEE AMOUNT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="84" length="12" name="DEBITS, PROCESSING FEE AMOUNT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="85" length="12" name="DEBITS, TRANSACTION FEE AMOUNT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="86" length="16" name="CREDITS, AMOUNT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="87" length="16" name="CREDITS, REVERSAL AMOUNT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="88" length="16" name="DEBITS, AMOUNT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="89" length="16" name="DEBITS, REVERSAL AMOUNT" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="90" length="42" name="ORIGINAL DATA ELEMENTS" class="org.jpos.iso.IFA_NUMERIC"/>
<isofield id="91" length="1" name="FILE UPDATE CODE" class="org.jpos.iso.IF_CHAR"/>
<isofield id="92" length="2" name="FILE SECURITY CODE" class="org.jpos.iso.IF_CHAR"/>
<isofield id="93" length="6" name="RESPONSE INDICATOR" class="org.jpos.iso.IF_CHAR"/>
<isofield id="94" length="7" name="SERVICE INDICATOR" class="org.jpos.iso.IF_CHAR"/>
<isofield id="95" length="42" name="REPLACEMENT AMOUNTS" class="org.jpos.iso.IF_CHAR"/>
<isofield id="96" length="16" name="MESSAGE SECURITY CODE" class="org.jpos.iso.IFA_BINARY"/>
<isofield id="97" length="17" name="AMOUNT, NET SETTLEMENT" class="org.jpos.iso.IFA_AMOUNT"/>
<isofield id="98" length="25" name="PAYEE" class="org.jpos.iso.IF_CHAR"/>
<isofield id="99" length="11" name="SETTLEMENT INSTITUTION IDENT CODE" class="org.jpos.iso.IFA_LLNUM"/>
<isofield id="100" length="11" name="RECEIVING INSTITUTION IDENT CODE" class="org.jpos.iso.IFA_LLNUM"/>
<isofield id="101" length="17" name="FILE NAME" class="org.jpos.iso.IFA_LLCHAR"/>
<isofield id="102" length="28" name="FROM ACCOUNT" class="org.jpos.iso.IFA_LLCHAR"/>
<isofield id="103" length="10" name="ACCOUNT IDENTIFICATION 2" class="org.jpos.iso.IFA_LLCHAR"/>
<isofield id="104" length="100" name="TRANSACTION DESCRIPTION" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="105" length="999" name="RESERVED ISO USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="106" length="999" name="RESERVED ISO USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="107" length="999" name="RESERVED ISO USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="108" length="999" name="RESERVED ISO USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="109" length="999" name="RESERVED ISO USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="110" length="999" name="RESERVED ISO USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="111" length="999" name="RESERVED ISO USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="112" length="999" name="RESERVED NATIONAL USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="113" length="999" name="RESERVED NATIONAL USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="114" length="999" name="RESERVED NATIONAL USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="115" length="999" name="RESERVED NATIONAL USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="116" length="999" name="RESERVED NATIONAL USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="117" length="999" name="RESERVED NATIONAL USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="118" length="999" name="RESERVED NATIONAL USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="119" length="999" name="RESERVED NATIONAL USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="120" length="999" name="RESERVED PRIVATE USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="121" length="999" name="RESERVED PRIVATE USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="122" length="999" name="RESERVED PRIVATE USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="123" length="999" name="RESERVED PRIVATE USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="124" length="999" name="RESERVED PRIVATE USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="125" length="999" name="RESERVED PRIVATE USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="126" length="999" name="RESERVED PRIVATE USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="127" length="999" name="RESERVED PRIVATE USE" class="org.jpos.iso.IFA_LLLCHAR"/>
<isofield id="128" length="8" name="MAC 2" class="org.jpos.iso.IFA_BINARY"/>
</isopackager>

Please help. I have tried a lot of things but unable to fix this. I am new to this group so please consider my mistakes while describing the problem.

chhil

unread,
Nov 7, 2016, 12:46:44 PM11/7/16
to jpos-...@googlegroups.com
Try this 
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISOUtil;
import org.jpos.iso.packager.GenericPackager;
import org.jpos.util.Logger;
import org.jpos.util.SimpleLogListener;

public class Test {

    
public static void main(String[] args) 
{

        String message = "3032303046323343343644313239453039323030303030303030303035323030303032313139353036313037313032323336363032333732343430323031303030303030313530303030303039303931353533303420202020203131363533303430393039313930313630313130353130303130303132443030303030303030303635303631303733323030303030303030303030303030303030303030303030303030303030303030323033393030303030303038363031313035303532333745424E303030303030303035323331454E472052562052554D554F4B4F524F202020202020205256202020202020202020202052564E4735363633303330333033303330333033303330323030394632363038333632323846414238364439453342423946323730313430394631303230304641353031363230323030303630303030303030303030303030303030303030463031414141414141414141414141414141414141414141414141414141413946333730343538324531423333394633363032303234313935303534323830323430303030394130333136303933303943303130303946303230363030303030303030303031353546324130323039343938323032353830303946314130323037393239303337303830333730383033373038303337303834313437303639303337303831303532353130333635313330313535313132303135313333343430303230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030";

        Logger l = new Logger();
        l.addListener(new SimpleLogListener());
        ISOMsg m = new ISOMsg();
        GenericPackager p;
        try {
            p = new GenericPackager("./fields.xml");
            m.setPackager(p);
            m.unpack(ISOUtil.hex2byte(message)); // You need to convert the hex string to bytes
            m.pack();
            m.dump(System.out, "");
        }
        catch (ISOException e) {

            e.printStackTrace();
            m.dump(System.out, "");
        }

    }

}

Output (I hope you are using a test pan)

<isomsg direction="none">
  <!-- org.jpos.iso.packager.GenericPackager[
​fields​
.xml] --> <field id="0" value="0200"/> <field id="2" value="5061071022366023724"/> <field id="3" value="402010"/> <field id="4" value="000001500000"/> <field id="7" value="0909155304"/> <field id="11" value=" 1"/> <field id="12" value="165304"/> <field id="13" value="0909"/> <field id="14" value="1901"/> <field id="18" value="6011"/> <field id="22" value="051"/> <field id="23" value="001"/> <field id="25" value="00"/> <field id="26" value="12"/> <field id="28" value="D00000000"/> <field id="32" value="506107"/> <field id="35" value="00000000000000000000000000000000"/> <field id="37" value="203900000008"/> <field id="40" value="601"/> <field id="41" value="10505237"/> <field id="42" value="EBN000000005231"/> <field id="43" value="ENG RV RUMUOKORO RV RVNG"/> <field id="49" value="566"/> <field id="52" value="3030303030303030"/> <field id="55" value="9F260836228FAB86D9E3BB9F2701409F10200FA501620200060000000000000000000F01AAAAAAAAAAAAAAAAAAAAAAAAAAAA9F3704582E1B339F36020241950542802400009A031609309C01009F02060000000000155F2A020949820258009F1A020792"/> <field id="98" value="9037080370803708037084147"/> <field id="100" value="903708"/> <field id="103" value="5251036513"/> <field id="123" value="511201513344002"/> <field id="128" value="0000000000000000" type="binary"/> </isomsg>

--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+unsubscribe@googlegroups.com.
To post to this group, send email to jpos-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/e0a1df84-da71-4efe-9c4e-639ddba9dfa4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mark Salter

unread,
Nov 8, 2016, 1:46:43 AM11/8/16
to jpos-...@googlegroups.com
On 07/11/16 17:29, Gaurav Kumar wrote:
> //String message =
> "02003220000000808000000010000000001500120604120000000112340001840";
> //String message =
> "02553032303046323343343644313239453039323030303030303030303035323030303032313139353036313037313032323336363032333732343430323031303030303030313530303030303039303931353533303420202020203131363533303430393039313930313630313130353130303130303132443030303030303030303635303631303733323030303030303030303030303030303030303030303030303030303030303030323033393030303030303038363031313035303532333745424E303030303030303035323331454E472052562052554D554F4B4F524F202020202020205256202020202020202020202052564E4735363633303330333033303330333033303330323030394632363038333632323846414238364439453342423946323730313430394631303230304641353031363230323030303630303030303030303030303030303030303030463031414141414141414141414141414141414141414141414141414141413946333730343538324531423333394633363032303234313935303534323830323430303030394130333136303933303943303130303946303230363030303030303030303031353546324130323039343938323032353830303946314130323037393239303337303830333730383033373038303337303834313437303639303337303831303532353130333635313330313535313132303135313333343430303230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030";
>
>
String message =
> "3032303046323343343644313239453039323030303030303030303035323030303032313139353036313037313032323336363032333732343430323031303030303030313530303030303039303931353533303420202020203131363533303430393039313930313630313130353130303130303132443030303030303030303635303631303733323030303030303030303030303030303030303030303030303030303030303030323033393030303030303038363031313035303532333745424E303030303030303035323331454E472052562052554D554F4B4F524F202020202020205256202020202020202020202052564E4735363633303330333033303330333033303330323030394632363038333632323846414238364439453342423946323730313430394631303230304641353031363230323030303630303030303030303030303030303030303030463031414141414141414141414141414141414141414141414141414141413946333730343538324531423333394633363032303234313935303534323830323430303030394130333136303933303943303130303946303230363030303030303030303031353546324130323039343938323032353830303946314130323037393239303337303830333730383033373038303337303834313437303639303337303831303532353130333635313330313535313132303135313333343430303230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030";
From
>
character hexadecimal..

> byte[] bb= message.getBytes();
...To bytes...
> sb.append(ByteUtil.byteToHex(bb[i]));
... and then back to character hex ...

> } message=sb.toString();
Then to a String...

> ISOMsg isoMsg = new ISOMsg(); isoMsg.setPackager(packager);
> isoMsg.unpack(message.getBytes());
and then back to bytes, why?

My suggestion - although Chhil has revised your test code - is to start
at the top,
select your Packager based upon the documented structure in the message
specification (and later the same for Channel selection) matching field
by field; ad a Logger to the Packager to see the fields being broken
down in the log.

--
Mark

Gaurav Kumar

unread,
Nov 8, 2016, 4:15:44 AM11/8/16
to jPOS Users
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.

To post to this group, send email to jpos-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jpos-users/e0a1df84-da71-4efe-9c4e-639ddba9dfa4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.




Dear Chhil,

Thanks a lot lot lot for your help. I am able to parse it now :) 

Gaurav Kumar

unread,
Nov 8, 2016, 4:17:30 AM11/8/16
to jPOS Users
Thanks Mark for the guidance. 
Reply all
Reply to author
Forward
0 new messages