1

ISO 8583 メッセージの送受信に JPOS を使用しています。クライアントは次のとおりです。

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 であることです

ここに画像の説明を入力

それで、私は間違いを犯しましたか?メッセージを受け取る正しい方法はどれですか?

4

1 に答える 1

1

これは jPOS が使用する内部表現です。その事実は無視してかまいません。チャネルが ISOMsg のpack()メソッドを呼び出すと、ビットマップが適切に生成されます。

いくつかのコメント:

  • EnvMsgjPOSの一部ではありません。拡張していると思いますISOMsg
  • に電話する必要はありませんmsg.setPackager。チャンネルがあなたに代わって電話をかけます。
  • QServerクラスを使用しないことで、サーバーの車輪を再発明しています
  • ChannelAdaptorクラスを使用しないことで、クライアント コードで車輪を再発明しています。
  • おそらくマルチプレクサが必要になるでしょう。使用を検討してくださいQMUX
  • Q2 アプリケーションを見て、これらすべてを実行することをお勧めします。
于 2014-03-13T23:53:13.083 に答える