Автоматизация Nuxeo и индивидуальное обогащение - PullRequest
1 голос
/ 07 марта 2019

Я пытаюсь научиться разрабатывать свой собственный обогатитель (мне кажется, я понимаю основы с точки зрения того, как обогатители относятся к цепям автоматизации и т. Д.).Однако у меня возникают проблемы:

  • Я могу использовать существующие обогащители, например, с 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

1 Ответ

1 голос
/ 12 марта 2019

Убедитесь, что вы компилируете обогащенный код с той же версией библиотек 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.

...