1
私のjposクライアントから次の0800要求を送信しています。jposサーバーからの応答がありません
private void sendLonOnRequest() {
ISOMsg logOnMessage = null;
try {
Object sessionId = sp.rd(cfg.get(READ_KEY), cfg.getLong(TIME_OUT));
if (sessionId != null) {
logOnMessage = new ISOMsg();
logOnMessage.setMTI("0800");
logOnMessage.set(7, ISODate.getDateTime(new Date()));
logOnMessage.set(11, getSystemAuditNumber());
logOnMessage.set(70, "001");
logOnMessage.set(125, "EFT");
ISOMsg response = mux.request(logOnMessage, 30000);
if (response != null) {
sp.out(ECHO, new Object(), echoInterval);
handleSuccess(logOnMessage);
} else {
log.info("############ RESPONSE NULL");
handleFailure(logOnMessage, null);
}
}
} catch (ISOException e) {
handleFailure(logOnMessage, e);
}
}
システム監査番号は次のように生成されます。
public String getSystemAuditNumber() {
int stan = new Random().nextInt(900000);
return ISOUtil.zeropad(stan, 6);
}
サンプル要求は、次のとおりです。
<log realm="channel/xxx.xxx.xx.xxx:port" at="Thu Aug 10 14:12:32 IST 2017.175" lifespan="78ms">
<send>
<isomsg direction="outgoing">
<!-- org.jpos.iso.packager.GenericPackager[D:/location/to/packager/iso87ascii.xml] -->
<field id="0" value="0800"/>
<field id="7" value="0810141232"/>
<field id="11" value="022887"/>
<field id="70" value="001"/>
<field id="125" value="EFT"/>
</isomsg>
</send>
</log>
しかし、私は任意の応答を取得しない(応答がnullである)JPOSサーバからとクライアントはタイムアウトします。私はサーバーのログを見る方法やデバッグする方法がありません。誰かが私にこれを助けてくれますか?
サーバーを管理している人からのフィードバックが必要です。そうでなければ完全に盲目です。サーバーの仕様に従って正しいパッケージャとチャネルを使用していることを確認するだけです。 –
ありがとうAndres。理由を見つけました。チャネルのヘッダー値にはスペースが含まれています。例として、ヘッダーは「ISOHEADER」です。私がチャネルアダプタの設定でそれを設定すると、それはヘッダ値をトリムするようです。スペースでヘッダーを構成する方法はありますか? – Chanikag
別個のSO問題が作成されました:https://stackoverflow.com/questions/45709755/how-to-configure-jpos-channel-header-with-spaces – Chanikag