所以我想从快速修复J中获取原始消息数据。这不是Message对象的字符串表示,而是实际的FIX消息数据。由于提供给Quick FIX的消息字典,它们可能会很好地推迟。现在看一下Message类型我们有一个
private String messageData;
这是私有的,但无法访问。另一方面,toString()方法如下所示:
public String toString() {
this.header.setField(new BodyLength(this.bodyLength()));
this.trailer.setField(new CheckSum(this.checkSum()));
StringBuffer sb = new StringBuffer();
this.header.calculateString(sb, (int[])null, (int[])null);
this.calculateString(sb, (int[])null, (int[])null);
this.trailer.calculateString(sb, (int[])null, (int[])null);
return sb.toString();
}
话虽如此,有没有办法从邮件中获取原始数据?我似乎找不到方法
答案 0 :(得分:0)
你必须破解引擎才能成为messageData
的公共访问者。
答案 1 :(得分:0)
不确定当您尝试使用QuickFIX / J版本时该功能是否可用,但是我可以看到它在2.1.0版本中可用。
在Message.java中:
public String toRawString() {
return messageData;
}
尽管如此,在对Message对象进行任何修改之后,此方法不会计算主体长度和校验和。为此,您必须使用toString()方法。