0

A null pointer exception occurred when trying to connect to hybris database using hybris flexible search service seemingly due to getJaloResult() method.

I need to retrieve certain data from hybris commerce database. I tried to use hybris flexible service to do that by using defaultFlexibleSearchService.search() method, but I got a null pointer exception. It seems that the exception occurred when search() method tries to call getJaloResult() method. I have no clue about the solution - thanks for any hints.

My class definition code is here

package de.hybris.platform.integrationservices.audit;
import java.util.stream.Stream;
import com.sun.tools.javac.util.List;
import de.hybris.platform.audit.TypeAuditReportConfig;
import de.hybris.platform.audit.view.AuditViewService;
import de.hybris.platform.audit.view.impl.ReportView;
import de.hybris.platform.servicelayer.search.FlexibleSearchQuery;
import de.hybris.platform.servicelayer.search.FlexibleSearchService;
import de.hybris.platform.servicelayer.search.RelationQuery;
import de.hybris.platform.servicelayer.search.SearchResult;
import de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService;
import de.hybris.platform.integrationservices.model.IntegrationObjectModel;  

public class IntegrationObjectAudit implements AuditViewService
{
    private DefaultFlexibleSearchService defaultFlexibleSearchService;

    public IntegrationObjectAudit() {
        defaultFlexibleSearchService = new DefaultFlexibleSearchService();
    }

    public List<IntegrationObjectModel> searchModel(){
        String query = "SELECT {PK} FROM {IntegrationObject}";
        FlexibleSearchQuery flexibleSearchQuery = new FlexibleSearchQuery(query);
        flexibleSearchQuery.setCount(1);

        de.hybris.platform.servicelayer.search.SearchResult<IntegrationObjectModel> resListIntegrationModel = this.defaultFlexibleSearchService.search(query);
        List<IntegrationObjectModel> resList = (List<IntegrationObjectModel>) resListIntegrationModel.getResult();
        return resList;
    }
}
Joe Mayo
  • 7,501
  • 7
  • 41
  • 60
Oscar Quebec
  • 11
  • 1
  • 3

1 Answers1

0

Didnt notice it was posted days back. Hope you already resolved it. Still adding my answer as it may be helpful for others.

What I see you are not injecting flexibleSearchService bean in IntegrationObjectAudit. And as flexibleSearchService bean is not injected, its causing NullPointerException when you call any function on it.

You can fix it as following (spring bean injection concept)

  1. Either you should create a setter function and inject it by spring xml
  2. Or use @Resource or @Autowire annotation for same

public class IntegrationObjectAudit implements AuditViewService
{
    @Resource 
    private DefaultFlexibleSearchService flexibleSearchService;

     .....

Hope it helps. Let me know please.

www.hybriscx.com
  • 1,129
  • 4
  • 22