I'm not able to integrate Solr 7.5 with AEM 6.4,
getting the following error:
I have tried with almost every version of Solr, but I am getting the same error again and again!
I am simply following this tutorial:
Adobe Experience Manager Help | Integrating SOLR with Adobe Experience Manager
But, in this tutorial, apache.felix.scr.annotations are used. I am just replacing these annotations with osgi annotations.
smacdonald2008
smacdonald2008
03-10-2018
Here is the new article with R6 annotations working - along with a video.
Adobe Experience Manager Help | Integrating SOLR with Adobe Experience Manager 6.4
@Component
public
class
SolrSearchServiceImpl
implements
SolrSearchService
One difference here is we show new way of reading OSGi config values for this use case. This involves these annotations:
package
com.adobe.aem.core;
import
org.osgi.service.metatype.annotations.AttributeDefinition;
import
org.osgi.service.metatype.annotations.AttributeType;
import
org.osgi.service.metatype.annotations.ObjectClassDefinition;
@ObjectClassDefinition
(name =
"AEM Solr Search - Solr Configuration Service"
, description =
"Service Configuration"
)
public
@interface
MySimpleService {
@AttributeDefinition
(name =
"Protocol"
, defaultValue =
"http"
, description =
"Configuration value"
)
String protocolValue();
@AttributeDefinition
(name =
"Solr Server Name"
, defaultValue =
"localhost"
, description =
"Server name or IP address"
)
String serverName();
@AttributeDefinition
(name =
"Solr Server Port"
, defaultValue =
"8983"
, description =
"Server port"
)
String serverPort();
@AttributeDefinition
(name =
"Solr Core Name"
, defaultValue =
"collection"
, description =
"Core name in solr server"
)
String serverCollection();
@AttributeDefinition
(name =
"Content page path"
, defaultValue =
"/content/we-retail"
, description =
"Content page path from where solr has to index the pages"
)
String serverPath();
}
smacdonald2008
smacdonald2008
01-10-2018
I will include a video too in the new article and show everything!
smacdonald2008
smacdonald2008
01-10-2018
The article you referenced is for AEM 6.2. I am gonig to test this on 6.4 and we will update the article. Updating the OSGi to R6 and the dependencies will be part of this updated article.
azaquan
azaquan
15-11-2019
Do you think is there a chance you guys could update a more recent Solr version? That makes the big difference on this issues though. That would be really awesome 🙂
We are getting the same kind of problems when trying to do the same project on the article (sing archetype 22) and different Solr versions, higher than 7.1
Thanks,
Juan
Lucas_Reyes
Lucas_Reyes
11-07-2019
I ran into the same issue and I fixed it by manually installing the bundle in Web Console from my local maven repository. After that, the bundle will resolve the dependency and the service can be activated.
Note that I'm using Solr 7.5 and tried both jars from org.apache.servicemix.bundles.solr-solrj and org.apache.solr.solr-solrj, but installing org.apache.solr.solr-solrj failed with error: java.io.IOException: Bundle-SymbolicName header missing, cannot install bundle.
BTW, I hope someone can explain what the difference is, but org.apache.servicemix.bundles.solr-solrj jar is bigger in size than org.apache.solr.solr-solrj.
Regards,
Lucas
ajinkayk6258253
ajinkayk6258253
10-07-2019
i'm also getting same issue whie interating with solr 8.1
mayanky56670501
mayanky56670501
01-10-2018
Please use OSGi Annotations in that article!
and Thank you so much for your help!
mayanky56670501
mayanky56670501
01-10-2018
Okay, I have tried to replicate this project, But I don't know why my OSGi bundle is not getting resolved! It is getting installed!
but again the same error is coming!
smacdonald2008
smacdonald2008
01-10-2018
I keep Felix Annotations for now - my main concern was getting the code to work in AEM 6.4. I am writing up the article now.
mayanky56670501
mayanky56670501
01-10-2018
Are you using OSGI Annotations? and can you please send me the SOLR dependencies which you've used in this project.
smacdonald2008
smacdonald2008
01-10-2018
The component also displays data from SOLR IN 6.4 --
smacdonald2008
smacdonald2008
01-10-2018
I have AEM 6.4 and SOLR working. The Index was successful. We used We Retail too for AEM 6.4.
We will update this AEM SOLR article for AEM 6.4.
smacdonald2008
smacdonald2008
01-10-2018
This will be part of the new article - need to test front end logic now.
smacdonald2008
smacdonald2008
01-10-2018
I got the bundle into Active State on 6.4.
mayanky56670501
mayanky56670501
01-10-2018
Yes, I have tried this dependency. But my bundle is not getting installed and I am getting the same error: cannot be resolved
mayanky56670501
mayanky56670501
01-10-2018
Sure, Thanks by the way.
Just one small request, Could you please update it as soon as possible!
PuzanovsP
MVP
PuzanovsP
MVP
01-10-2018
Dear Mayanky,
Please find patch that updates SolrJ library to 7.5.0. This code stil uses SCR, only the changes needed to update SolrJ library bundled here to 7.5 have been performed.
Index: core/pom.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- core/pom.xml (revision 603009da7fcd67f2b6ae3782edfbd0bb9a98153e)
+++ core/pom.xml (date 1538407473120)
@@ -135,8 +135,13 @@
</dependency>
<!-- Solr Dependencies -->
<dependency>
- <groupId>org.apache.servicemix.bundles</groupId>
- <artifactId>org.apache.servicemix.bundles.solr-solrj</artifactId>
+ <groupId>org.apache.solr</groupId>
+ <artifactId>solr-solrj</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-math3</artifactId>
+ <version>3.6</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
Index: core/src/main/java/com/adobe/aem/core/servlets/IndexContentToSolr.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- core/src/main/java/com/adobe/aem/core/servlets/IndexContentToSolr.java (revision 603009da7fcd67f2b6ae3782edfbd0bb9a98153e)
+++ core/src/main/java/com/adobe/aem/core/servlets/IndexContentToSolr.java (date 1538407326651)
@@ -68,7 +68,8 @@
.getContentPagePath();
String URL = protocol + "://" + serverName + ":" + serverPort
+ "/solr/" + coreName;
- HttpSolrClient server = new HttpSolrClient(URL);
+ final HttpSolrClient.Builder builder = new HttpSolrClient.Builder().withBaseSolrUrl(URL);
+ final HttpSolrClient server = builder.build();
if (indexType.equalsIgnoreCase("indexpages")) {
try {
JSONArray indexPageData = solrSearchService.crawlContent(
Index: core/src/main/java/com/adobe/aem/core/servlets/DeleteIndexesFromSolr.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- core/src/main/java/com/adobe/aem/core/servlets/DeleteIndexesFromSolr.java (revision 603009da7fcd67f2b6ae3782edfbd0bb9a98153e)
+++ core/src/main/java/com/adobe/aem/core/servlets/DeleteIndexesFromSolr.java (date 1538407326664)
@@ -41,7 +41,8 @@
final String coreName = solrConfigurationService.getSolrCoreName();
String URL = protocol + "://" + serverName + ":" + serverPort
+ "/solr/" + coreName;
- HttpSolrClient server = new HttpSolrClient(URL);
+ final HttpSolrClient.Builder builder = new HttpSolrClient.Builder().withBaseSolrUrl(URL);
+ final HttpSolrClient server = builder.build();
try {
server.deleteByQuery("*:*");
server.commit();
Index: pom.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- pom.xml (revision 603009da7fcd67f2b6ae3782edfbd0bb9a98153e)
+++ pom.xml (date 1538407046640)
@@ -486,12 +486,13 @@
<version>1.4</version>
<scope>test</scope>
</dependency>
+ <!-- https://mvnrepository.com/artifact/org.apache.solr/solr-solrj -->
<dependency>
- <groupId>org.apache.servicemix.bundles</groupId>
- <artifactId>org.apache.servicemix.bundles.solr-solrj</artifactId>
- <version>5.4.1_1</version>
- </dependency>
- <dependency>
+ <groupId>org.apache.solr</groupId>
+ <artifactId>solr-solrj</artifactId>
+ <version>7.5.0</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
Regards,
Peter
PuzanovsP
MVP
PuzanovsP
MVP
01-10-2018
Hi Mayanky,
If you simply follow this tutorial and install the package with SCR annotations, it does work even on AEM 6.4 SP2.
At least to the point where you can see the bundle started. Following services are registered as well:
Service ID 8543 | Types: com.adobe.aem.core.SolrServerConfiguration Service PID: com.adobe.aem.core.impl.SolrServerConfigurationImpl Component Name: com.adobe.aem.core.impl.SolrServerConfigurationImpl Component ID: 4256 Vendor: Adobe |
Service ID 8544 | Types: javax.servlet.Servlet Service PID: com.adobe.aem.core.servlets.DeleteIndexesFromSolr Component Name: com.adobe.aem.core.servlets.DeleteIndexesFromSolr Component ID: 4257 Vendor: Adobe |
Service ID 8545 | Types: org.apache.sling.spi.resource.provider.ResourceProvider Description: ServletResourceProvider for Servlets at [/bin/solr/delete/all/indexes, /bin/solr/delete/all/indexes.servlet] |
Service ID 8546 | Types: org.apache.sling.spi.resource.provider.ResourceProvider Description: ServletResourceProvider for Servlets at [/bin/solr/delete/all/indexes, /bin/solr/delete/all/indexes.servlet] |
Service ID 8547 | Types: com.adobe.aem.core.SolrSearchService Service PID: com.adobe.aem.core.impl.SolrSearchServiceImpl Component Name: com.adobe.aem.core.impl.SolrSearchServiceImpl Component ID: 4259 Vendor: Adobe |
Service ID 8548 | Types: javax.servlet.Servlet Service PID: com.adobe.aem.core.servlets.IndexContentToSolr Component Name: com.adobe.aem.core.servlets.IndexContentToSolr Component ID: 4258 Vendor: Adobe |
Service ID 8549 | Types: org.apache.sling.spi.resource.provider.ResourceProvider Description: ServletResourceProvider for Servlets at [/bin/solr/push/pages.servlet, /bin/solr/push/pages] |
Service ID 8550 | Types: org.apache.sling.spi.resource.provider.ResourceProvider |
The tutorial itself uses Solr version 5.4.1. It adds Solr jar as a jar in class path:
Bundle Classpath.,OSGI-INF/lib/org.apache.servicemix.bundles.solr-solrj-5.4.1_1.jar,OSGI-INF/lib/log4j-1.2.16.jar,OSGI-INF/lib/noggit-0.5.jar,OSGI-INF/lib/zookeeper-3.4.5.jar
Which should allow you to work. So, in your case, to upgrade it to Solr 7, you would need to update your pom.xml to Solr 7 Jar's (including all of the new Jar's that need to be included in classpath for Solr 7).
Regards,
Peter
Veena_Vikram
MVP
Veena_Vikram
MVP
01-10-2018
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>7.5.0</version>
</dependency>
Is this the Maven dependency you are using ? I tried it but the jars are not reflecting in my build . Could you share the maven dependency you used. I can try it out and check
Thanks
Veena
mayanky56670501
mayanky56670501
01-10-2018
bsloki I have checked almost every version of Solr from 5.0 -> 7.0 +, but nothing is working! Just getting the same error again and again!
bsloki
MVP
bsloki
MVP
01-10-2018
Please check the dependency version of solrj.
You can check the version by giving the package here - /system/console/depfinder