RE: Issue in connecting to remote index Elasticsearch in liferay.7.2.CE

Pankaj Sharma, modified 4 Years ago. New Member Posts: 6 Join Date: 7/4/13 Recent Posts

Hi Team,

I have a need to connect to remote index in Elasticsearch server, I want to fetech data from the remote index Elasticsearch server. 

I have created a portlet and added below osgi dependency to write Rest High Level Client to connect to remote index of ES, I added OSGI dependency of the Elasticsearch inside the build.gradle file: 

    compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-high-level-client', version: '6.5.0'
    compile group: 'org.elasticsearch', name: 'elasticsearch', version: '6.5.0'
    compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-client', version: '6.5.0'
    compile group: 'org.elasticsearch', name: 'elasticsearch-core', version: '6.5.0'
    compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-client-sniffer', version: '6.5.0'

 

       I used blown code to connect to remote ES index and get data from the ES index.

  RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost(HOST, 9600, "http")))

                 SearchRequest searchRequest = new SearchRequest(INDEX);
                
                org.elasticsearch.index.query.QueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("companyname", "Wipro");
                SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
                sourceBuilder.query(matchQueryBuilder);
                searchRequest.source(sourceBuilder);
                SearchResponse searchResponse = client.search(searchRequest);
                System.out.println(" ###### Get the SearchResponse : ########"+ searchResponse);

                client.close();

 I have implemented same code into the custom portlet, I tried to connection and get data from the remote ES index,  I got the         exception below during the deployment with Liferay7.2.GA2.CE tomcat server. 

 2020-12-10 13:46:12.047 INFO  [fileinstall-D:/CRM/setup-vendor-ce/app-server/liferay-ce-portal-7.2.1-ga2/osgi/modules][BundleStartStopLogger:39] STARTED com.crm.elasticsearch_1.0.0 [3705]
2020-12-10 13:46:12.276 ERROR [Framework Event Dispatcher: Equinox Container: 2413d8bb-bcb4-4953-ae2a-45429debf6ad][Framework:93] FrameworkEvent ERROR 
org.osgi.framework.ServiceException: Exception in org.apache.felix.scr.impl.manager.SingleComponentManager.getService()
    at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:222)
    at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111)
    at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:524)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:464)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624)
    at com.liferay.portal.osgi.web.portlet.tracker.internal.PortletTracker.addingService(PortletTracker.java:120)
    at com.liferay.portal.osgi.web.portlet.tracker.internal.PortletTracker.addingService(PortletTracker.java:111)
    at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943)
    at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)
    at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
    at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
    at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:903)
    at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:891)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892)
    at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:666)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:432)
    at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665)
    at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339)
    at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:381)
    at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49)
    at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:263)
    at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196)
    at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169)
    at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49)
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488)
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:1)
    at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)
    at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:230)
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:137)
    at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:129)
    at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:191)
    at org.eclipse.osgi.container.Module.publishEvent(Module.java:476)
    at org.eclipse.osgi.container.Module.start(Module.java:467)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:428)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1275)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1248)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365)
    at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316)
Caused by: java.lang.NoClassDefFoundError: org/elasticsearch/index/query/QueryBuilder
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    at java.lang.Class.getConstructors(Class.java:1651)
    at org.apache.felix.scr.impl.inject.ComponentConstructor.<init>(ComponentConstructor.java:94)
    at org.apache.felix.scr.impl.inject.ComponentMethodsImpl.initComponentMethods(ComponentMethodsImpl.java:106)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:1008)
    at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1026)
    at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:936)
    at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:901)
    at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210)
    ... 52 more
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.index.query.QueryBuilder cannot be found by com.crm.elasticsearch_1.0.0
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:508)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:151)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 64 more
2020-12-10 13:46:12.276 ERROR [fileinstall-D:/CRM/setup-vendor-ce/app-server/liferay-ce-portal-7.2.1-ga2/osgi/modules][ElasticSearchControllerPortlet:93] bundle com.crm.elasticsearch:1.0.0 (3705)[com.crm.elasticsearch.portlet.ElasticSearchControllerPortlet(5279)] :  Error during instantiation of the implementation object 
java.lang.NullPointerException

I also tried to another version of the Rest Client OSGI dependency with liferay 7.2.GA2.CE.

compile group: 'org.elasticsearch.client', name: 'elasticsearch-rest-high-level-client', version: '6.8.0' 

But I got the same expection as above.

Please help me to resolve this issue, Kindly suggest me, I have to add any other dependency and need to be the change the dependency version.

Thanks in advance

 

thumbnail
Russell Bohl, modified 4 Years ago. Expert Posts: 308 Join Date: 2/13/13 Recent Posts

I can't help you too much with specifics, but from what I can see you're trying to execute a MatchQuery against query Liferay's company index.

Have you seen these docs?

See Search Qeureis and Filters

and Building Search Queries and Filters