Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

How I can see my service in Felix console

Avatar

Level 7

I am able to see my bundle in aem felix console but I want to see my service HelloServiceImpl I am not able to find ..

1580771_pastedImage_6.png

Develop.java(This is my consumer class who will consume my services)

=====================================================================================================

package amitsample.core.filters;

import com.adobe.cq.sightly.WCMUse;

import amitsample.core.filters.HelloService;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class Develope extends WCMUse {

                Logger logger = LoggerFactory.getLogger(Develope.class);

             protected String details;

                @Override

                  public void activate() throws Exception {

  HelloService serv= getSlingScriptHelper().getService(HelloService.class);

details=serv.getRepositoryName();

logger.info("this is the first log values");

}

                   public String getDetails() {

                                    return details;

                  }

               

  1. HelloService.java(This is my interface ,I have made this because service must implement at least one service)

=====================================================================================================

package amitsample.core.filters;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

/**

* A simple service interface

*/

public interface HelloService{

   

      

    /**

     * @return the name of the underlying JCR repository implementation

     */

    public String getRepositoryName();

}

  1. HelloServiceImpl .java(This is my service )

=====================================================================================================

package amitsample.core.filters;

import javax.jcr.Repository;

import org.apache.felix.scr.annotations.Component;

import org.apache.felix.scr.annotations.Reference;

import org.apache.felix.scr.annotations.Service;

import org.apache.sling.jcr.api.SlingRepository;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

@Service

@Component(immediate = true)

public class HelloServiceImpl implements HelloService {

                Logger logger = LoggerFactory.getLogger(HelloServiceImpl.class);

               

   

    @Reference

    private SlingRepository repository;

    public String getRepositoryName() {

               

                logger.info("this is the first log values inside Helloserviceimp class");

        return repository.getDescriptor(Repository.REP_NAME_DESC);

    }

}

5 Replies

Avatar

Community Advisor

Hi,

Can you check if is it registered as service or component? your service should be listed at above url.

Check http://localhost:4502/system/console/components



Arun Patidar

Avatar

Level 7

Thanks my bundle was in Installed status ....I didn't notice

Avatar

Employee Advisor

I wonder why it is listed as service. It's only a component, but not a service.

You are using the Felix SCR annotations, which means that you need to use both @Component and @Service; if you switch to the OSGI components, @Comonent is sufficient.

Jörg

Avatar

Community Advisor

Hi Jorg,

He is using Felix annotation and used service annotation as well thats why it should be listed as service. Initially I was also confused then I saw service annotation just below imports

import org.slf4j.LoggerFactory;

@Service

@Component(immediate = true)



Arun Patidar

Avatar

Employee Advisor

Ah, sorry, overlooked the @Service (bad formatting).

Jörg