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

Thursday, January 30, 2014

Pembuatan Aplikasi Server

Sekarang buatlah sebuah class baru dan beri nama JPosServer dan simpan pada package id.web.martinusadyh.iso8583.jpos. Karena kita menggunakan library jPOS, maka implementasi Server kita tidak serumit yang pertama :) Dan inilah implementasi server kita yang menggunakan library jPOS :

  1. id.web.martinusadyh.iso8583.jpos.JPosServer.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
    62
    63
    64
    65
    
    package id.web.martinusadyh.iso8583.jpos;
     
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import org.jpos.iso.BaseChannel;
    import org.jpos.iso.ISOException;
    import org.jpos.iso.ISOMsg;
    import org.jpos.iso.ISOPackager;
    import org.jpos.iso.ISORequestListener;
    import org.jpos.iso.ISOServer;
    import org.jpos.iso.ISOSource;
    import org.jpos.iso.ServerChannel;
    import org.jpos.iso.channel.ASCIIChannel;
    import org.jpos.iso.packager.GenericPackager;
     
    /**
     *
     * @author Martinus Ady H <mrt.itnewbies@gmail.com>
     */
    public class JPosServer implements ISORequestListener {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws ISOException {
            String hostname = "localhost";
            int portNumber = 12345;
     
            // membuat sebuah packager
            ISOPackager packager = new GenericPackager("packager/iso93ascii.xml");
            // membuat channel
            ServerChannel channel = new ASCIIChannel(hostname, portNumber, packager);
            // membuat server
            ISOServer server = new ISOServer(portNumber, channel, null);
            server.addISORequestListener(new JPosServer());
     
            new Thread(server).start();
     
            System.out.println("Server siap menerima koneksi pada port [" + portNumber+"]");
        }
     
        public boolean process(ISOSource isoSrc, ISOMsg isoMsg) {
            try {
                System.out.println("Server menerima koneksi dari ["+((BaseChannel)isoSrc).getSocket().getInetAddress().getHostAddress()+"]");
                if (isoMsg.getMTI().equalsIgnoreCase("1800")) {
                        acceptNetworkMsg(isoSrc, isoMsg);
                }
            } catch (IOException ex) {
                Logger.getLogger(JPosServer.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ISOException ex) {
                Logger.getLogger(JPosServer.class.getName()).log(Level.SEVERE, null, ex);
            }
            return false;
        }
     
        private void acceptNetworkMsg(ISOSource isoSrc, ISOMsg isoMsg) throws ISOException, IOException {
            System.out.println("Accepting Network Management Request");
            ISOMsg reply = (ISOMsg) isoMsg.clone();
            reply.setMTI("1810");
            reply.set(39, "00");
     
            isoSrc.send(reply);
        }
    }
Melihat perbedaan antara penulisan menggunakan library jPOS dengan menggunakan Socket biasa ??? Jika belum, mari kita lihat bagaimana implementasi untuk client-nya :)

No comments:

Post a Comment