PatrickStasch
I'm new here

FirstSpirit und die ElasticSearch (7.1.1)

Hallo,

Ich versuche z.Z. die ElasticSearch (7.1.1) mit FirstSpirit zu verwenden und laufe in folgendes Problem:

Bei dem ersten Versuch Dateien und Seiten über einen FS Auftrag zu indexieren wird folgender Fehler geworfen:

error during script execution : java.lang.NoSuchFieldError: LATEST

java.lang.NoSuchFieldError: LATEST

at org.elasticsearch.Version.<clinit>(Version.java:48)

bei den Versuchen danach wird dieser geworfen:

ERROR 08.07.2019 10:01:02.888{dNR=} (de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.common.unit.ByteSizeValue

java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.common.unit.ByteSizeValue

at org.elasticsearch.action.bulk.BulkProcessor$Builder.<init>(BulkProcessor.java:89)

at org.elasticsearch.action.bulk.BulkProcessor$Builder.<init>(BulkProcessor.java:81)

Es sieht so aus, als könnte FS die Verbindung zu den Grundlegenden Klassen/Packages (z.B. org.elasticsearch.common) von dem Modul nicht finden.

Durch ein wenig stöbern hier in der Community habe ich herausgefunden, dass sich ab und an Klassen beißen können

und ältere Versionen von den benötigten dependencies geladen werden.

In meinen lokalen Tests mit JUnit, ohne FS, indexiert mein Modul fröhlich vor sich hin, sobald ich aber das ganze in FS über einen Auftrag durch eine Executable ausführen möchte läuft es nicht, deswegen ist meine Vermutung zur Zeit das ich hier in ein Classloading Problem gelaufen bin in der ElasticSearch eine alte Version von lucene lädt und somit nicht auf die von mir angegebene Version in der module.xml. Dafür spricht die Version Fehler Meldung mit LATEST kurzer Ausschnitt aus der Klasse von elasticsearch:

Zeile 48: public static final Version V_EMPTY = new Version(V_EMPTY_ID, org.apache.lucene.util.Version.LATEST)

Ggf. mache ich auch einfach einen anderen Fehler der mir nicht direkt ins Auge sticht.

Kurios hierbei ist noch, dass ich eine Custom TagLib geschrieben habe um die Aufrufe für die Suche über ElasticSearch in meinem Projekt zu verwenden, diese funktioniert Problemlos und kann den RestHighLevelClient ansprechen und verwenden.

Natürlich gibt es aber keine Suchergebnisse da keine Dateien/Seiten indexiert sind.

Vielleicht hat jemand hier schon eine neuere Version (7.1.1 oder 7.2) von ElasticSearch in Betrieb und oder kann mich in die richtige Richtung lenken, sodass ich der Lösung näher komme.

Version von FS 2019-03

Server ohne Isolated Mode

Viele Grüße

Patrick Stasch

0 Kudos
3 Replies
tpilz
I'm new here

Hallo Patrick,

wie ist denn deine module.xml aufgebaut, sind die nötigen Abhängigkeiten enthalten?

Viele Grüße

Thomas

0 Kudos

Hi Thomas,

hier der teil aus der module.xml der interessant ist denke ich

<web-app>

<name>toller webapp name</name>

<displayname>webappJar</displayname>

<web-xml>web.xml</web-xml>

<web-resources>

<resource>lib/elasticsearch-0.0.2.jar</resource>

<resource>lib/tolleProjekt.jar</resource>

<resource>lib/elasticsearch-7.1.1.jar</resource>

<resource>lib/elasticsearch-rest-high-level-client-7.1.1.jar</resource>

<resource>lib/elasticsearch-core-7.1.1.jar</resource>

<resource>lib/elasticsearch-secure-sm-7.1.1.jar</resource>

<resource>lib/elasticsearch-geo-7.1.1.jar</resource>

<resource>lib/elasticsearch-x-content-7.1.1.jar</resource>

<resource>lib/elasticsearch-rest-client-7.1.1.jar</resource>

<resource>lib/elasticsearch-cli-7.1.1.jar</resource>

<resource>lib/parent-join-client-7.1.1.jar</resource>

<resource>lib/lucene-core-8.0.0.jar</resource>

<resource>lib/lucene-analyzers-common-8.0.0.jar</resource>

<resource>lib/lucene-queries-8.0.0.jar</resource>

<resource>lib/lucene-memory-8.0.0.jar</resource>

<resource>lib/lucene-highlighter-8.0.0.jar</resource>

<resource>lib/lucene-queryparser-8.0.0.jar</resource>

<resource>lib/lucene-sandbox-8.0.0.jar</resource>

<resource>lib/lucene-suggest-8.0.0.jar</resource>

<resource>lib/lucene-misc-8.0.0.jar</resource>

<resource>lib/lucene-join-8.0.0.jar</resource>

<resource>lib/lucene-grouping-8.0.0.jar</resource>

<resource>lib/lucene-spatial-8.0.0.jar</resource>

<resource>lib/lucene-spatial3d-8.0.0.jar</resource>

<resource>lib/lucene-spatial-extras-8.0.0.jar</resource>

<resource>lib/lucene-backward-codecs-8.0.0.jar</resource>

<resource>lib/aopalliance-repackaged-2.5.0-b32.jar</resource>

<resource>lib/jna-4.5.1.jar</resource>

<resource>lib/t-digest-3.2.jar</resource>

<resource>lib/jersey-client-2.25.1.jar</resource>

<resource>lib/log4j-api-2.11.1.jar</resource>

<resource>lib/aggs-matrix-stats-client-7.1.1.jar</resource>

<resource>lib/generic-configuration-2.6.0.jar</resource>

<resource>lib/httpasyncclient-4.1.4.jar</resource>

<resource>lib/hk2-utils-2.5.0-b32.jar</resource>

<resource>lib/jackson-dataformat-cbor-2.8.11.jar</resource>

<resource>lib/commons-codec-1.11.jar</resource>

<resource>lib/commons-logging-1.1.3.jar</resource>

<resource>lib/javax.annotation-api-1.2.jar</resource>

<resource>lib/jopt-simple-5.0.2.jar</resource>

<resource>lib/compiler-0.9.3.jar</resource>

<resource>lib/joda-time-2.10.1.jar</resource>

<resource>lib/jackson-annotations-2.9.0.jar</resource>

<resource>lib/HdrHistogram-2.1.9.jar</resource>

<resource>lib/json-20180813.jar</resource>

<resource>lib/lang-mustache-client-7.1.1.jar</resource>

<resource>lib/commons-io-2.4.jar</resource>

<resource>lib/javax.ws.rs-api-2.0.1.jar</resource>

<resource>lib/snakeyaml-1.17.jar</resource>

<resource>lib/rl_validation-1.2.0.22.jar</resource>

<resource>lib/commons-lang-2.4.jar</resource>

<resource>lib/jersey-guava-2.25.1.jar</resource>

<resource>lib/javax.inject-2.5.0-b32.jar</resource>

<resource>lib/jackson-dataformat-smile-2.8.11.jar</resource>

<resource>lib/hk2-locator-2.5.0-b32.jar</resource>

<resource>lib/hppc-0.7.1.jar</resource>

<resource>lib/jersey-common-2.25.1.jar</resource>

<resource>lib/hk2-api-2.5.0-b32.jar</resource>

<resource>lib/javassist-3.20.0-GA.jar</resource>

<resource>lib/personalisation-5.2.180608.jar</resource>

<resource>lib/jackson-dataformat-yaml-2.8.11.jar</resource>

<resource>lib/commons-lang3-3.0.jar</resource>

<resource>lib/jackson-databind-2.9.9.jar</resource>

<resource>lib/gson-2.8.2.jar</resource>

<resource>lib/jackson-core-2.9.9.jar</resource>

<resource>lib/rank-eval-client-7.1.1.jar</resource>

<resource>lib/jstl-1.2.jar</resource>

<resource>lib/httpcore-nio-4.4.11.jar</resource>

<resource>lib/osgi-resource-locator-1.0.1.jar</resource>

</web-resources>

</web-app>

Ich weiß leider nicht wie ich in diesem Editor einen Codeblock um meinen Code packe.

Ich bin auch gerade dabei einfach mal den isolated mode zu testen.

0 Kudos

Hallo Patrick,

ich bin kein Spezialist was den Isolated Mode angeht, aber ich denke falls der Konflikt die Ursache des Problems ist, wirst du wohl damit weiterkommen.

Ich habe gerade mal die 2019-06 im Nonisolated und Isolated verglichen, da ist ein Lucene Core 3.6.0 dabei, im Isolated Mode ist das aber "Shaded" und die Klassen über eine andere Package Struktur erreichbar (de.espirit.apache / org.apache).

Viele Grüße

Thomas

0 Kudos