Jackson 上 XML 的序列化顺序注释不起作用

Serialising order annotations for XML on Jackson does not work

我已经用谷歌搜索了将近一天的时间并尝试了几个修复程序(包括来自 Whosebug 的 4 或 5 个),但其中 none 成功了。我有这个带有注释的 POJO 可以与 Jackson 2.10.2

一起使用
@JacksonXmlRootElement(localName = "request")
public class PdfExportQuery {

  @JacksonXmlProperty(localName = "user", isAttribute = true)
  private String username;

  @JacksonXmlProperty(localName = "pwd", isAttribute = true)
  private String password;

  @JacksonXmlProperty(localName = "putdoc")
  private XmlPutDoc putdoc;

  @JacksonXmlElementWrapper(useWrapping = false)
  @JacksonXmlProperty(localName = "import", isAttribute = true)
  private List<XmlPdfImport> imports;

  ... getters and setters
}

我使用这个 POJO 为一些外部请求创建 XML。一切正常,但现在我需要重新排序结果 XML 中的字段,但似乎没有任何效果。

我首先尝试将其设置为 class 级别:

@JsonPropertyOrder({"putdoc"}) (Using only the field and localName)
or
@JsonPropertyOrder({"putdoc", "user", "pwd", "import"}) (Using all fields and localName)
or
@JsonPropertyOrder({"putdoc", "username", "password", "imports"}) (Using all fields and the java property name)

然后我尝试设置每个字段的顺序:

@JsonProperty(1)
or
@JsonProperty(value="putdoc", index = 1)

我还尝试在所有字段上设置 JsonProperty,并且只在我有兴趣首先出现的字段上设置。

我也试过:

无论我做什么,生成的 XML 总是具有相同的顺序,所有的顺序注释似乎都被完全忽略了。

我找不到让它与注释一起工作的方法。我需要为 class 实现自定义序列化程序,只是为了更改顺序。