2014-03-13 46 views
1

我使用JPOS發送和接收ISO 8583消息。 下面是客戶:ISO 8583服務器位圖是-1

public static void main(String[] args) throws IOException, ISOException { 
    System.setProperty("java.net.preferIPv4Stack", "true"); 
    EvnMsg msg = new EvnMsg(); 
    ISO93APackager packager = new ISO93APackager(); 
    msg.setPackager(packager); 
    msg.setMTI("1804"); 
    msg.setAuditNumber("124125"); 
    ASCIIChannel channel = new ASCIIChannel("Server_IP", PORT, packager); 
    channel.connect(); 
    channel.send(msg); 
    channel.receive(); 
    //channel.disconnect(); 
} 

這裏是服務器:

public static void main(String[] args) throws IOException, ISOException { 
    ISO93APackager packager = new ISO93APackager(); 
    ServerChannel channel = new ASCIIChannel (packager); 
    channel.accept(new ServerSocket(PORT)); 
    ISOMsg isoMsg = channel.receive(); 

    System.out.println("Received"); 
} 

服務器收到的消息,但問題是,有位圖-1

enter image description here

所以價值我犯了一個錯誤嗎?哪種方法可以接收郵件?

回答

1

這是jPOS使用的內部表示,可以隨意忽略該事實;一旦通道調用ISOMsg的pack()方法,位圖將被正確生成。

幾點意見:

  • EnvMsg不是初級專業人員的一部分,我假設你正在擴展ISOMsg
  • 你不必調用msg.setPackager,通道將在照顧那個你代表
  • 你不使用的QServer
  • 你不使用的ChannelAdaptor
  • 01重塑你的客戶端代碼輪重塑你的服務器車輪
  • 您可能需要一個多路複用器,考慮使用QMUX
  • 我建議你看看Q2應用程序來運行所有這些。
+0

謝謝@apr。如果您有關於ChannelAdaptor或Q2的一些信息或示例,這很好。 – hieund

+0

請查看http://jpos.org/learn,有關於Q2和ChannelAdaptor的大量信息的免費指南。 – apr