JPOS dan ISO-8583

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

JPOS dan ISO-8583

herry suganda
ada yang punya contoh aplikasi dan tutorial java yang menggunakan JPOS untuk membuat ISO-8583 ga ?
kalo ada mau dong...

atau kasih link nya aja dimana aku harus download...

thanks banyak2 nih buwat semuanya

sukses selalu...


     

[Non-text portions of this message have been removed]

Reply | Threaded
Open this post in threaded view
|

Re: JPOS dan ISO-8583

Ifnu bima
> ada yang punya contoh aplikasi dan tutorial java yang menggunakan JPOS untuk
> membuat ISO-8583 ga ?
> kalo ada mau dong...
>
> atau kasih link nya aja dimana aku harus download...
>
> thanks banyak2 nih buwat semuanya

hi, kalo JPos librarynya memang gratis,cuman dokumentasi dan samplenya
beli yah :D

pada dasarnya aplikasi JPos bisa jadi 2 mode, client atau server.
perbedaan kedua mode ini cuma mana yang harus duluan initiate request.
Kalau client logikanya adalah send message duluan kemudian menunggu
reply, kemudian di sisi server nunggu message kemudian reply lagi ke
cleint.

kita bahas satu2 mulai dari servernya dulu.

Server pertamakali yang harus dilakukan adalah menyiapkan class yang
implement interface IsoRequestListener, misalnya

    public class IsoListerner implements ISORequestListener{

        public boolean process(ISOSource source, ISOMsg msg) {
            //handle request
            ISOMsg reply = handleRequest(msg);
            //reply request
            source.send(reply);
        }

        public ISOMsg handleRequest(ISOMsg msg){
            return new ISOMsg();
        }
    }


kemudian kode untuk jalanin servernya kira-kira begini :

public class Iso8583Server{
    public static void main(String[] args) {
        BASE24Packager packager = new BASE24Packager();
        ServerChannel channel = new BASE24TCPChannel();
        channel.setPackager(packager);
        ISOServer server = new ISOServer(123, channel, null);
        server.addISORequestListener(new IsoListerner());
    }
}

langkah pertama adalah menentukan packagernya,
dalam hal ini adalah Base24 packager,
        BASE24Packager packager = new BASE24Packager();

kemudian membuat Server channel untuk membuka socket, dalam hal ini Base24TCP
        ServerChannel channel = new BASE24TCPChannel();
        channel.setPackager(packager);

kemudian membuat isoserver dan menambahkan listenernya
        ISOServer server = new ISOServer(123, channel, null);
        server.addISORequestListener(new IsoListerner());

setelah itu jalankan servernya di thread yang berbeda



--
Senior Engineer @ ArtiVisi Intermedia
Java Training Center
See our course @ artivisi.com

http://ifnu.artivisi.com
+62 856 9211 8687
regards
Reply | Threaded
Open this post in threaded view
|

Re: JPOS dan ISO-8583

herry suganda
In reply to this post by herry suganda
wah makasih mas...

ga nyangka jawabannya sampai sedetail ini....

makasih... makasih...



----- Original Message ----
From: Ifnu bima <[hidden email]>
To: [hidden email]
Sent: Thursday, August 7, 2008 11:18:34 AM
Subject: Re: [netbeans-indonesia] JPOS dan ISO-8583


> ada yang punya contoh aplikasi dan tutorial java yang menggunakan JPOS untuk
> membuat ISO-8583 ga ?
> kalo ada mau dong...
>
> atau kasih link nya aja dimana aku harus download...
>
> thanks banyak2 nih buwat semuanya

hi, kalo JPos librarynya memang gratis,cuman dokumentasi dan samplenya
beli yah :D

pada dasarnya aplikasi JPos bisa jadi 2 mode, client atau server.
perbedaan kedua mode ini cuma mana yang harus duluan initiate request.
Kalau client logikanya adalah send message duluan kemudian menunggu
reply, kemudian di sisi server nunggu message kemudian reply lagi ke
cleint.

kita bahas satu2 mulai dari servernya dulu.

Server pertamakali yang harus dilakukan adalah menyiapkan class yang
implement interface IsoRequestListener, misalnya

public class IsoListerner implements ISORequestListener{

public boolean process(ISOSource source, ISOMsg msg) {
//handle request
ISOMsg reply = handleRequest( msg);
//reply request
source.send( reply);
}

public ISOMsg handleRequest( ISOMsg msg){
return new ISOMsg();
}
}

kemudian kode untuk jalanin servernya kira-kira begini :

public class Iso8583Server{
public static void main(String[ ] args) {
BASE24Packager packager = new BASE24Packager( );
ServerChannel channel = new BASE24TCPChannel( );
channel.setPackager (packager) ;
ISOServer server = new ISOServer(123, channel, null);
server.addISOReques tListener( new IsoListerner( ));
}
}

langkah pertama adalah menentukan packagernya,
dalam hal ini adalah Base24 packager,
BASE24Packager packager = new BASE24Packager( );

kemudian membuat Server channel untuk membuka socket, dalam hal ini Base24TCP
ServerChannel channel = new BASE24TCPChannel( );
channel.setPackager (packager) ;

kemudian membuat isoserver dan menambahkan listenernya
ISOServer server = new ISOServer(123, channel, null);
server.addISOReques tListener( new IsoListerner( ));

setelah itu jalankan servernya di thread yang berbeda

--
Senior Engineer @ ArtiVisi Intermedia
Java Training Center
See our course @ artivisi.com

http://ifnu. artivisi. com
+62 856 9211 8687
regards
   


     

[Non-text portions of this message have been removed]

Reply | Threaded
Open this post in threaded view
|

Re: JPOS dan ISO-8583

Ifnu bima
In reply to this post by Ifnu bima
sory kepotong, kita lanjutkan

> setelah itu jalankan servernya di thread yang berbeda
    new Thread(server).start();

Kalau diminta bahwa aplikasi kita harus jalan sebagai client,
prosesnya sedikit berbeda, karena client tidak buka koneksi hanya
melakukan koneksi ke server, jadi langkah-langkahnya sedikit berbeda
kalau aplikasi kita harus jalan sebagai client

kita akan buat 2 class, class untuk jalanin client, dan class untuk
process messagenya

    public class IsoClient {

        public static void main(String[] args) {
        BASE24Packager packager = new BASE24Packager();
        BASE24TCPChannel channel = new BASE24TCPChannel("localhost",
123, packager);
        channel.connect();

        IsoClientProcessor process = new IsoClientProcessor();

        while(channel.isConnected()){
            ISOMsg msg = channel.receive();
            ISOMsg reply = process.processMessage(msg);
            msg.getSource().send(reply);
        }

        }

    }

    public class IsoClientProcessor{

        public ISOMsg processMessage(ISOMsg msg){
            //process incoming message
            //then create reply message
            return new ISOMsg();
        }
    }

penjelasan :

pertama buat dulu packager yang sama persis dengan sisi servernya:
        BASE24Packager packager = new BASE24Packager();

kemudian bikin channel untuk koneksi ke socket  yang juga sama persis
dengan servernya, "localhost" adalah nama servernya, 123 adalah
portnya, dan packager berasal dari Base24packager diatas
        BASE24TCPChannel channel = new BASE24TCPChannel("localhost",
123, packager);

berikutnya adalah mencoba melakukan koneksi ke server
        channel.connect();

setelah itu, client menjalankan forever loop, sampe channelnya
terputus, didalam loopnya si client ini menunggu ada message masuk,
kemudian memproses message baru kemudian bales lagi message yang masuk
        IsoClientProcessor process = new IsoClientProcessor();

        while(channel.isConnected()){
            ISOMsg msg = channel.receive();
            ISOMsg reply = process.processMessage(msg);
            msg.getSource().send(reply);
        }

        }

tutorial diatas nggak sepenuhnya jalan, karena hanya kode yang saya
ketik di sini saja, mungkin ada typo atau error.

Untuk memudahkan proses handling message ini gunakan pattern yang
disebut Resolver [1] dan Handler[2], trus jangan lupa gunakan JUnit[3]
dan Logging [4] secara extensive, JUnit menyelamatkan banyak waktu gw
pas development, dan Logger membantu banyak pas testing dan deployment

[1] wah lupa deh linknya, coba cari di core j2ee pattern
[2] idem sama yang diatas
[3] http://endy.artivisi.com/downloads/presentations/ruthless-testing-1/ruthless-testing-1.html
[4] http://endy.artivisi.com/blog/java/menggunakan-log4j/

selamat belajar


--
Senior Engineer @ ArtiVisi Intermedia
Java Training Center
See our course @ artivisi.com

http://ifnu.artivisi.com
+62 856 9211 8687
regards
Reply | Threaded
Open this post in threaded view
|

Re: JPOS dan ISO-8583

Ifnu bima
In reply to this post by herry suganda
> wah makasih mas...
>
> ga nyangka jawabannya sampai sedetail ini....
>
> makasih... makasih...

ok sama-sama, kalau udah selesai bikin tutorialnya yah, byar ilmunya
tambah banyak yang tau.


--
Senior Engineer @ ArtiVisi Intermedia
Java Training Center
See our course @ artivisi.com

http://ifnu.artivisi.com
+62 856 9211 8687
regards
Reply | Threaded
Open this post in threaded view
|

Re: JPOS dan ISO-8583

riosimanjuntak
Mas aku udh download jpos... aku jalankan melalui netbeans IDE 6.1 tapi ada error
package org.jpos.iso does not exists

Apa ada yang kurang settingannya ya.... atau gimana supaya bisa di jalankan melalui netbeans dengan baik..

Atas Bantuannya saya ucapkan terimakasih....

Salam



ifnu wrote
> wah makasih mas...
>
> ga nyangka jawabannya sampai sedetail ini....
>
> makasih... makasih...

ok sama-sama, kalau udah selesai bikin tutorialnya yah, byar ilmunya
tambah banyak yang tau.


--
Senior Engineer @ ArtiVisi Intermedia
Java Training Center
See our course @ artivisi.com

http://ifnu.artivisi.com
+62 856 9211 8687
regards
Reply | Threaded
Open this post in threaded view
|

Re: JPOS dan ISO-8583

rio_simanjuntak
In reply to this post by Ifnu bima
Mas saya udh coba download aplikasi JPOS, tapi pada saya run IsoTest
terdapat error spt berikut :

init:
deps-jar:
Compiling 1 source file to D:\Source Switching\JPOS
Mahal\jpos\build\classes
D:\Source Switching\JPOS Mahal\jpos\cfg\packager\IsoTest.java:2:
package jpos.iso does not exist
import jpos.iso.ISOException;
D:\Source Switching\JPOS Mahal\jpos\cfg\packager\IsoTest.java:3:
package org.jpos.iso does not exist
import org.jpos.iso.ISOMsg;
D:\Source Switching\JPOS Mahal\jpos\cfg\packager\IsoTest.java:4:
package org.jpos.iso.packager does not exist
import org.jpos.iso.packager.GenericPackager;
D:\Source Switching\JPOS Mahal\jpos\cfg\packager\IsoTest.java:13:
cannot find symbol
symbol  : class ISOMsg
location: class IsoTest
        ISOMsg msg = new ISOMsg();
D:\Source Switching\JPOS Mahal\jpos\cfg\packager\IsoTest.java:13:
cannot find symbol
symbol  : class ISOMsg
location: class IsoTest
        ISOMsg msg = new ISOMsg();
D:\Source Switching\JPOS Mahal\jpos\cfg\packager\IsoTest.java:15:
cannot find symbol
symbol  : class GenericPackager
location: class IsoTest
            GenericPackager packager = new GenericPackager(isp);
D:\Source Switching\JPOS Mahal\jpos\cfg\packager\IsoTest.java:15:
cannot find symbol
symbol  : class GenericPackager
location: class IsoTest
            GenericPackager packager = new GenericPackager(isp);
D:\Source Switching\JPOS Mahal\jpos\cfg\packager\IsoTest.java:24:
cannot find symbol
symbol  : class ISOMsg
location: class IsoTest
            msg = new ISOMsg();
D:\Source Switching\JPOS Mahal\jpos\cfg\packager\IsoTest.java:29:
cannot find symbol
symbol  : class ISOException
location: class IsoTest
        } catch (ISOException e) {
9 errors
BUILD FAILED (total time: 2 seconds)



untuk source yang saya coba kira-kira seperti ini...
------------------------------------------------------------------
import java.io.InputStream;
import jpos.iso.ISOException;
    import org.jpos.iso.ISOMsg;
import org.jpos.iso.packager.GenericPackager;

public class IsoTest {

    public IsoTest() {
    }

    public static void main(String[] args) {
        InputStream isp =
ClassLoader.getSystemResourceAsStream("iso87ascii.xml");
        ISOMsg msg = new ISOMsg();
        try {
            GenericPackager packager = new GenericPackager(isp);
            msg.setPackager(packager);
            msg.setMTI("0800");
            msg.set(7, "22062008");
            msg.set(11, "000001");

            String message = new String(msg.pack());
            System.out.println("ISO message hasil generate :" + message);

            msg = new ISOMsg();
            msg.setPackager(packager);
            msg.unpack(message.getBytes());
            System.out.println("field 7 hasil unpack :" +
msg.getValue(7));
            System.out.println("field 11 hasil unpack :" +
msg.getValue(11));
        } catch (ISOException e) {
            e.printStackTrace();
        }
    }
}
------------------------------------------------------------------

Kira-kira gimana solusinya ya... saya menjalankannya melalui netbeans
IDE 6.1

Ketika saya sorot mouse ke import, muncul pesan
package org.jpos.iso.ISOMsg; does not exists

apakah ada cara yang salah pada saat di jalankan di Netbeans?
atau masih ada kah librari atau modul dari JPOS yang kurang...
Mohon Pencerahannya ya.....

Terimakasih,

Salam,

Rio

Reply | Threaded
Open this post in threaded view
|

Re: JPOS dan ISO-8583

Sirnudd
This post has NOT been accepted by the mailing list yet.
In reply to this post by Ifnu bima
Mau tanya?
Saya sudah membuat aplikasi server dan client ISO8583 menggunakan library jpos.
agar server bisa multithreading caranya bagaimana ya?, soalnya yang saya developt saat ini proses data on by one.