从Quick Fix J Message

时间:2015-10-01 14:14:55

标签: quickfixj

所以我想从快速修复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();
}

话虽如此,有没有办法从邮件中获取原始数据?我似乎找不到方法

2 个答案:

答案 0 :(得分:0)

你必须破解引擎才能成为messageData的公共访问者。

答案 1 :(得分:0)

不确定当您尝试使用QuickFIX / J版本时该功能是否可用,但是我可以看到它在2.1.0版本中可用。

在Message.java中:

public String toRawString() {
    return messageData;
}

尽管如此,在对Message对象进行任何修改之后,此方法不会计算主体长度和校验和。为此,您必须使用toString()方法。