1

我正在尝试学习如何开发自己的浓缩器(我相信我确实了解基础知识,就浓缩器与自动化链的关系等而言)。但是,我遇到了问题:

  • 我可以将现有的丰富器与例如 Document.FetchByProperty 一起使用,一切都会正常工作
  • 但是一旦我包含我自己的自定义浓缩器,我就会收到错误(下面的链接)
  • 我不知道我做错了什么,所以我从 Nuxeo 示例项目中获取了现有的自定义浓缩器,并得到了同样的错误

欢迎任何帮助!

日志链接:https ://answers.nuxeo.com/api/files/2b14d403-aa8a-4ac3-81ca-c9ee13623c2a

我在这里也问过同样的问题:

https://answers.nuxeo.com/general/q/af5a6369c91942b5a81bf61549b467f2/Automation-and-a-custom-enricher

4

1 回答 1

1

确保您使用与目标平台版本相同的 Nuxeo 库版本来编译丰富器代码。

例如示例项目正在使用最新版本(当前为 11.1-SNAPSHOT),结果代码将与 Nuxeo 平台 9.2 不兼容。尤其是抽象方法可能会出现问题。

因此,在您的情况下, pom.xml中应该有这一部分<version>9.2</version>

<parent>
    <groupId>org.nuxeo</groupId>
    <artifactId>nuxeo-addons-parent</artifactId>
    <version>9.2</version>
</parent>

在这里抛出的原因java.lang.AbstractMethodError是在JsonGenerator. Nuxeo 9.2 使用org.codehaus.jackson.JsonGenerator,而较新的 Nuxe 版本使用com.fasterxml.jackson.core.JsonGenerator.

然后这个方法签名(在 9.2 中):

public void write(org.codehaus.jackson.JsonGenerator jsonGenerator, DocumentModel documentModel) throws IOException;

...与此不兼容(例如在 10.3 中):

public void write(com.fasterxml.jackson.core.JsonGenerator json, DocumentModel document) throws IOException;

然后 Java 无法找到正确的write()方法实现并抛出异常AbstractMethodError

于 2019-03-12T14:32:19.097 回答