Tried that, but many things can not get resolved that way in my case.
| Subject | Author | Kudos | Views | Posted | |
|---|---|---|---|---|---|
|
| 0 | 9380 | 24-10-2019 07:31 PDT | ||
| 0 | 9185 | 24-10-2019 07:49 PDT | |||
| 0 | 9186 | 24-10-2019 11:53 PDT | |||
| 0 | 9161 | 26-02-2020 05:24 PST | |||
| 0 | 9120 | 06-05-2020 11:09 PDT | |||
| 0 | 2691 | 30-09-2020 19:29 PDT | |||
| 0 | 9181 | 24-10-2019 12:23 PDT | |||
| 0 | 9179 | 25-10-2019 05:24 PDT |
I am having some problems using elasticsearch-rest-high-level-client dependency in my project.
According to Elasticsearch documentation only this should be included:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.4.0</version>
</dependency>
However, there were many NoClassDefinitionFound errors, so I embed the package inside maven-bundle-plugin. I realized that no transitive dependencies are included (altho I have <Embed-Transitive>true</Embed-Transitive>)
so I've added many of them like this:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Embed-Dependency>org.apache.servicemix.bundles.solr-solrj, noggit,
elasticsearch-rest-high-level-client,
elasticsearch,
elasticsearch-core,
elasticsearch-rest-client,
elasticsearch-x-content,
elasticsearch-core,
elasticsearch-secure-sm,
rank-eval-client,
lang-mustache-client,
httpasyncclient,
lucene-core;
</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Embed-Directory>OSGI-INF/lib</Embed-Directory>
<Export-Package>we.retail.core.model*</Export-Package>
<Import-Package>
*;resolution:=optional;
</Import-Package>
<Private-Package>
we.retail.core*
</Private-Package>
<Sling-Model-Packages>
we.retail.core.model
</Sling-Model-Packages>
<_fixupmessages>"Classes found in the wrong directory";is:=warning</_fixupmessages>
</instructions>
</configuration>
</plugin>
Now I have problem while indexing content: Method threw 'java.lang.NoClassDefFoundError' exception. Cannot evaluate org.elasticsearch.action.index.IndexRequest.toString()
So some other dependencies are missing or org.elasticsearch is not properly imported.
Is there a better way to do this? I've seen some with creating bundle with third party dependencies (using Eclipse to create plugin as standard OSGi package), but I am not sure how then to include that dependencies in main (core) bundle. Any other recommendation?
Note:
<_fixupmessages>"Classes found in the wrong directory";is:=warning</_fixupmessages>
This was needed because when I add elasticsearch artifactid in Embed-package I can not run code because of this error:
[ERROR] Bundle com.adobe.cq.sample:we.retail.core:bundle:3.0.0-SNAPSHOT : Classes found in the wrong directory: {META-INF/versions/9/org/elasticsearch/monitor/jvm/JvmPid.class=org.elasticsearch.monitor.jvm.JvmPid}
[ERROR] Bundle com.adobe.cq.sample:we.retail.core:bundle:3.0.0-SNAPSHOT : Classes found in the wrong directory: {META-INF/versions/9/org/elasticsearch/core/internal/io/Streams.class=org.elasticsearch.core.internal.io.Streams}
[ERROR] Bundle com.adobe.cq.sample:we.retail.core:bundle:3.0.0-SNAPSHOT : Classes found in the wrong directory: {META-INF/versions/9/org/apache/lucene/util/LongsRef.class=org.apache.lucene.util.LongsRef, META-INF/versions/9/org/apache/lucene/search/PointRangeQuery$1.class=org.apache.lucene.search.PointRangeQuery$1, META-INF/versions/9/org/apache/lucene/util/StringHelper.class=org.apache.lucene.util.StringHelper, META-INF/versions/9/org/apache/lucene/util/automaton/Automaton$Builder.class=org.apache.lucene.util.automaton.Automaton$Builder, META-INF/versions/9/org/apache/lucene/util/bkd/BKDRadixSelector$1$1.class=org.apache.lucene.util.bkd.BKDRadixSelector$1$1, META-INF/versions/9/org/apache/lucene/analysis/tokenattributes/CharTermAttributeImpl.class=org.apache.lucene.analysis.tokenattributes.CharTermAttributeImpl, META-INF/versions/9/org/apache/lucene/util/bkd/BKDRadixSelector$2$1.class=org.apache.lucene.util.bkd.BKDRadixSelector$2$1, META-INF/versions/9/org/apache/lucene/util/BytesRef.class=org.apache.lucene.util.BytesRef, META-INF/versions/9/org/apache/lucene/document/BinaryPoint$2.class=org.apache.lucene.document.BinaryPoint$2, META-INF/versions/9/org/apache/lucene/document/RangeFieldQuery$QueryType$1.class=org.apache.lucene.document.RangeFieldQuery$QueryType$1, META-INF/versions/9/org/apache/lucene/index/CodecReader.class=org.apache.lucene.index.CodecReader, META-INF/versions/9/org/apache/lucene/util/automaton/Automaton.class=org.apache.lucene.util.automaton.Automaton, META-INF/versions/9/org/apache/lucene/util/bkd/BKDRadixSelector.class=org.apache.lucene.util.bkd.BKDRadixSelector, META-INF/versions/9/org/apache/lucene/util/bkd/MutablePointsReaderUtils$2.class=org.apache.lucene.util.bkd.MutablePointsReaderUtils$2, META-INF/versions/9/org/apache/lucene/document/LongRange.class=org.apache.lucene.document.LongRange, META-INF/versions/9/org/apache/lucene/index/MergeReaderWrapper.class=org.apache.lucene.index.MergeReaderWrapper, META-INF/versions/9/org/apache/lucene/util/CharsRef.class=org.apache.lucene.util.CharsRef, META-INF/versions/9/org/apache/lucene/codecs/compressing/LZ4.class=org.apache.lucene.codecs.compressing.LZ4, META-INF/versions/9/org/apache/lucene/document/LatLonPointDistanceQuery$1.class=org.apache.lucene.document.LatLonPointDistanceQuery$1, META-INF/versions/9/org/apache/lucene/document/DoubleRange.class=org.apache.lucene.document.DoubleRange, META-INF/versions/9/org/apache/lucene/document/FloatRange.class=org.apache.lucene.document.FloatRange, META-INF/versions/9/org/apache/lucene/document/RangeFieldQuery$QueryType$2.class=org.apache.lucene.document.RangeFieldQuery$QueryType$2, META-INF/versions/9/org/apache/lucene/util/bkd/BKDReader.class=org.apache.lucene.util.bkd.BKDReader, META-INF/versions/9/org/apache/lucene/util/CharsRef$UTF16SortedAsUTF8Comparator.class=org.apache.lucene.util.CharsRef$UTF16SortedAsUTF8Comparator, META-INF/versions/9/org/apache/lucene/util/bkd/MutablePointsReaderUtils$3$1.class=org.apache.lucene.util.bkd.MutablePointsReaderUtils$3$1, META-INF/versions/9/org/apache/lucene/util/bkd/HeapPointWriter.class=org.apache.lucene.util.bkd.HeapPointWriter, META-INF/versions/9/org/apache/lucene/document/LatLonPointInPolygonQuery$1$1.class=org.apache.lucene.document.LatLonPointInPolygonQuery$1$1, META-INF/versions/9/org/apache/lucene/search/BooleanScorer$TailPriorityQueue.class=org.apache.lucene.search.BooleanScorer$TailPriorityQueue, META-INF/versions/9/org/apache/lucene/util/bkd/MutablePointsReaderUtils$1$1.class=org.apache.lucene.util.bkd.MutablePointsReaderUtils$1$1, META-INF/versions/9/org/apache/lucene/document/IntRange.class=org.apache.lucene.document.IntRange, META-INF/versions/9/org/apache/lucene/document/LongDistanceFeatureQuery$DistanceScorer$2.class=org.apache.lucene.document.LongDistanceFeatureQuery$DistanceScorer$2, META-INF/versions/9/org/apache/lucene/index/CheckIndex$VerifyPointsVisitor.class=org.apache.lucene.index.CheckIndex$VerifyPointsVisitor, META-INF/versions/9/org/apache/lucene/search/PointInSetQuery$SinglePointVisitor.class=org.apache.lucene.search.PointInSetQuery$SinglePointVisitor, META-INF/versions/9/org/apache/lucene/search/TopFieldCollector.class=org.apache.lucene.search.TopFieldCollector, META-INF/versions/9/org/apache/lucene/document/LatLonPointDistanceFeatureQuery$DistanceScorer$2.class=org.apache.lucene.document.LatLonPointDistanceFeatureQuery$DistanceScorer$2, META-INF/versions/9/org/apache/lucene/util/bkd/BKDWriter$BKDMergeQueue.class=org.apache.lucene.util.bkd.BKDWriter$BKDMergeQueue, META-INF/versions/9/org/apache/lucene/util/bkd/BKDWriter.class=org.apache.lucene.util.bkd.BKDWriter, META-INF/versions/9/org/apache/lucene/util/BytesRefArray.class=org.apache.lucene.util.BytesRefArray, META-INF/versions/9/org/apache/lucene/util/IntsRef.class=org.apache.lucene.util.IntsRef, META-INF/versions/9/org/apache/lucene/index/BitsSlice.class=org.apache.lucene.index.BitsSlice, META-INF/versions/9/org/apache/lucene/document/RangeFieldQuery$QueryType$3.class=org.apache.lucene.document.RangeFieldQuery$QueryType$3, META-INF/versions/9/org/apache/lucene/index/PointValues.class=org.apache.lucene.index.PointValues, META-INF/versions/9/org/apache/lucene/util/bkd/BKDWriter$OneDimensionBKDWriter.class=org.apache.lucene.util.bkd.BKDWriter$OneDimensionBKDWriter}
Check this repo ... its old but can help you to get what you are looking for:
GitHub - viveksachdeva/elasticsearch-cq: Integration of ElasticSearch with CQ5
Tried that, but many things can not get resolved that way in my case.
@cqsapientu69896 you can see it here - I've manually created elasticsearch as separate OSGi bundles in Eclipse and reuse them in my project. You can check everything here: https://github.com/tadijam64/search-engines-comparison
Hi @tadijam47062732 thanks for replying we ended up using AWS lambda function but your reply might help someone else facing same issue
Can you run a clean of the Maven project? It could be old data from before making the changes have persisted
No, I run clean install