Create Custom packager

60 views
Skip to first unread message

dannygaviria

unread,
Apr 3, 2019, 6:51:34 PM4/3/19
to jPOS Users
Hi.

I try to create a reponse for test

    protected class F62Packager extends BASE24Packager 
    {
        protected ISOFieldPackager fld62[] = 
        {
        new Base1_BITMAP126(16, "Bit Map"),
      new IF_CHAR    (  2, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  34, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  10, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  2, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  14, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  16, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  6, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  6, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  21, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  6, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  8, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  12, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  12, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  30, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
      new IF_CHAR    (  6, "CARD ACCEPTOR TERMINAL IDENTIFICACION"),
        };
        protected F62Packager () 
        {
            super();
            setFieldPackager(fld62);
        }
    }

Set in Response:

m.set ("62.1", "10");
m.set ("62.2", ISOUtil.strpad("",34));
m.set ("62.3", ISOUtil.zeropad("30",10));
m.set ("62.4", "00");
m.set ("62.5", ISOUtil.zeropad("31",14));
m.set ("62.6", ISOUtil.strpad("",16));
m.set ("62.7", ISOUtil.strpad("",6));
m.set ("62.8", ISOUtil.strpad("",6));
m.set ("62.9", ISOUtil.strpad("",21));
m.set ("62.10", ISOUtil.strpad("",6));
m.set ("62.11", ISOUtil.strpad("",8));
m.set ("62.12", ISOUtil.strpad("",12));
m.set ("62.13", ISOUtil.strpad("",12));
m.set ("62.14", ISOUtil.strpad("",30));
m.set ("62.15", codigo_respuesta);

But obtain this.

 org.jpos.iso.IFB_LLLCHAR: Problem packing field 62
      <nested-exception>
      java.lang.ClassCastException: org.jpos.iso.ISOMsg cannot be cast to java.lang.String
        at org.jpos.iso.ISOStringFieldPackager.pack(ISOStringFieldPackager.java:137)
        at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:122)
        at org.jpos.iso.ISOMsg.pack(ISOMsg.java:405)

Thanks for your help.

Alejandro Revilla

unread,
Apr 3, 2019, 8:05:58 PM4/3/19
to jPOS Users
Life is much much easier if you use the GenericPackager. The outer packager needs to be of type IFB_LLLBINARY instead of IFB_LLLCHAR, but the problem here is you need to create an ISOFieldPackager, not an ISOPackager in order to deal with these inner fields.



dannygaviria

unread,
Apr 4, 2019, 8:54:04 AM4/4/19
to jPOS Users
Only change IFB_LLLBINARY instead of IFB_LLLCHAR and all is right.

Thank yoou very much.
Reply all
Reply to author
Forward
0 new messages