2017-08-14 76 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> 

但是我没有得到来自初级专业人员服务器的任何响应(响应为空),并客户端超时。我没有办法查看服务器的日志或进行调试。有人能帮助我吗?

+1

您需要管理服务器的人的反馈,否则您完全是盲目的,唯一可以做的就是确保您根据服务器规格使用正确的打包程序和通道。 –

+1

谢谢Andres。找出原因。通道的标题值包含空格。例如,标题是:“ISOHEADER”。当我在通道适配器配置中配置它时,它似乎修剪了标题值。有没有办法用空格配置标题? – Chanikag

+0

创建单独的SO问题:https://stackoverflow.com/questions/45709755/how-to-configure-jpos-channel-header-with-spaces – Chanikag

回答

0

如果您没有从服务器获取日志的选项,最好的选择是去网络嗅探器,如Wireshark

这可以帮助您了解发生了什么(TCP数据包级别)。

相关问题