2017-08-14 19 views
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サーバからとクライアントはタイムアウトします。私はサーバーのログを見る方法やデバッグする方法がありません。誰かが私にこれを助けてくれますか?

+1

サーバーを管理している人からのフィードバックが必要です。そうでなければ完全に盲目です。サーバーの仕様に従って正しいパッケージャとチャネルを使用していることを確認するだけです。 –

+1

ありがとうAndres。理由を見つけました。チャネルのヘッ​​ダー値にはスペースが含まれています。例として、ヘッダーは「ISOHEADER」です。私がチャネルアダプタの設定でそれを設定すると、それはヘッダ値をトリムするようです。スペースでヘッダーを構成する方法はありますか? – Chanikag

+0

別個のSO問題が作成されました:https://stackoverflow.com/questions/45709755/how-to-configure-jpos-channel-header-with-spaces – Chanikag

答えて

0

サーバからログを取得するオプションがない場合は、Wiresharkなどのネットワークスニファに行くことをお勧めします。

これは、何が起こっているのかを理解するのに役立ちます(TCPパケットレベル)。

関連する問題