0

j8583を使用してISOメッセージを作成および解析しています。テンプレートとパースを用意しましたが、テンプレート フィールドにデフォルト値が指定されていない場合、 NullPointerExceptionconfig.xmlで失敗します。

以下はNullPointerExceptionで失敗するテンプレートです。

フィールド3にはデフォルト値がありません。

<template type="0200">
<field num="3" type="NUMERIC" length="6"></field>
<field num="32" type="LLVAR">456</field>
<field num="35" type="LLVAR">4591700012340000=</field>
<field num="43" type="ALPHA" length="40">SOLABTEST             TEST-3       DF MX</field>
<field num="49" type="ALPHA" length="3">484</field>
<field num="60" type="LLLVAR">B456PRO1+000</field>
<field num="61" type="LLLVAR">        1234P</field>
<field num="100" type="LLVAR">999</field>
<field num="102" type="LLVAR">ABCD</field>

4

1 に答える 1

2

フィールド 3 を 6 桁の NUMERIC フィールドに指定していて、値を設定していません。空の文字列を解析しようとすると、NPE が発生し、NumberFormatException になるのは奇妙です。

github.com/chochos/j8583 で問題を報告してください。調査します (私は j8583 の作成者です)。

それまでの間、値を 0 に設定してみてください。または、フィールドが必要ない場合は、テンプレートから省略してください。

于 2015-11-04T16:50:33.690 に答える