Untuk memudahkan pembelajaran silahkan diawali melalui link berikut ini terlebih dahulu Bab 1

Thursday, January 30, 2014

Pembuatan Aplikasi Client

Pembuatan aplikasi untuk client-nya pun tidak begitu susah :) , sekarang buatlah sebuah class baru dengan nama JPosClient dan simpan pada package id.web.martinusadyh.iso8583.jpos. Setelah itu, pastekan kode dibawah ini :

  1. id.web.martinusadyh.iso8583.jpos.JPosClient.java
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    
    package id.web.martinusadyh.iso8583.jpos;
     
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import org.jpos.iso.ISOException;
    import org.jpos.iso.ISOMUX;
    import org.jpos.iso.ISOMsg;
    import org.jpos.iso.ISOPackager;
    import org.jpos.iso.ISORequest;
    import org.jpos.iso.channel.ASCIIChannel;
    import org.jpos.iso.packager.GenericPackager;
     
    /**
     *
     * @author Martinus Ady H <mrt.itnewbies@gmail.com>
     */
    public class JPosClient {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws IOException, ISOException {
            String hostname = "localhost";
            int portNumber = 12345;
     
            // membuat sebuah packager
            ISOPackager packager = new GenericPackager("packager/iso93ascii.xml");
            // membuat channel
            ASCIIChannel channel = new ASCIIChannel(hostname, portNumber, packager);
     
            ISOMUX isoMux = new ISOMUX(channel) {
                @Override
                protected String getKey(ISOMsg m) throws ISOException {
                    return super.getKey(m);
                }
            };
     
            new Thread(isoMux).start();
     
            // bikin network request
            ISOMsg networkReq = new ISOMsg();
            networkReq.setMTI("1800");
            networkReq.set(3, "123456");
            networkReq.set(7, new SimpleDateFormat("yyyyMMdd").format(new Date()));
            networkReq.set(11, "000001");
            networkReq.set(12, new SimpleDateFormat("HHmmss").format(new Date()));
            networkReq.set(13, new SimpleDateFormat("MMdd").format(new Date()));
            networkReq.set(48, "Tutorial ISO 8583 Dengan Java");
            networkReq.set(70, "001");
     
            ISORequest req = new ISORequest(networkReq);
            isoMux.queue(req);
     
            ISOMsg reply = req.getResponse(50*1000);
            if (reply != null) {
                System.out.println("Req ["+new String(networkReq.pack()) + "]");
                System.out.println("Res ["+new String(reply.pack()) + "]");
            }
        }
    }
Bagaimana tidak susah bukan ? Kode kita terlihat makin sederhana :) Nah jika sudah, sekarang coba lakukan proses Clean and Build dan jalankanlah JPosServer hingga muncul tampilan seperti dibawah ini :
run:
Server siap menerima koneksi pada port [12345]
Jika sudah menjumpai tampilan seperti diatas, sekarang jalankanlah aplikasi client-nya yaitu JPosClient. Jika tidak ada pesan kesalahan, maka kita akan melihat tampilan seperti dibawah ini pada sisi client :
run:
Req [1800A2380000000100000400000000000000123456201011090000010257411109029Tutorial ISO 8583 Dengan Java001]
Res [1810A2380000020100000400000000000000123456201011090000010257411109000029Tutorial ISO 8583 Dengan Java001]
Dan tampilan seperti ini pada sisi server :
run:
Server siap menerima koneksi pada port [12345]
Server menerima koneksi dari [127.0.0.1]
Accepting Network Management Request
Sekarang cobalah secara bergantian jalankan server yang menggunakan class ServerSocket biasa dengan client yang menggunakan library jPOS. Begitu juga sebaliknya, client dari class Socket dan server yang menggunakan library jPOS. Seharus-nya sudah tidak ada masalah lagi :)

2 comments:

  1. tutorial selanjutnya mas, request tagihan misalnya

    ReplyDelete
  2. mas kok muncul ini ya ketika JPosClient nya dijalankan
    Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - constructor ISOMUX in class org.jpos.iso.ISOMUX cannot be applied to given types;
    required: no arguments
    found: org.jpos.iso.channel.ASCIIChannel
    reason: actual and formal argument lists differ in length
    at co.id.banksumut.pbbmedan.iso8583.JPosClient.main(JPosClient.java:36)

    pada baris 36
    ISOMUX isoMux = new ISOMUX(channel) {
    @Override
    protected String getKey(ISOMsg m) throws ISOException {
    return super.getKey(m);
    }
    };

    new Thread(isoMux).start();

    ReplyDelete