1

使用 ISOMsg 打包的字段 64 错误

这是我的代码

    ISOMsg o = new ISOMsg();
    o.set(64, "00000000");
    byte[] data = o.pack();

错误:

Exception in thread "main" org.jpos.iso.ISOException: org.jpos.iso.IFA_BINARY Problem packing field 64 (java.lang.ClassCastException: java.lang.String cannot be cast to [B)
at org.jpos.iso.ISOBinaryFieldPackager.pack(ISOBinaryFieldPackager.java:120)
at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:119)
at org.jpos.iso.ISOMsg.pack(ISOMsg.java:333)
at ISO.Client.main(Client.java:53)
Nested:java.lang.ClassCastException: java.lang.String cannot be cast to [B
at org.jpos.iso.ISOBinaryFieldPackager.pack(ISOBinaryFieldPackager.java:105)
at org.jpos.iso.ISOBasePackager.pack(ISOBasePackager.java:119)
at org.jpos.iso.ISOMsg.pack(ISOMsg.java:333)
at ISO.Client.main(Client.java:53)
Java Result: 1
4

1 回答 1

2

这个问题有很多问题:

1)它不是真正的代码,它只是几行代码的片段。您现在显示了将打包程序分配给新创建的 ISOMsg 的位置

2) 字段 64 是二进制字段,因此您必须设置一个 byte[] 而不是 String。如果你想要全零,你可以试试 `ISOUtil.hex2byte("00000000");

于 2014-09-26T18:06:44.423 回答