Unable to reference the osgi service into a servlet
I am trying to reference a service into a servlet,but when I use @Refernce annotation i am getting 404 not found exception even though my service is registered properly.
here is my code snippet
Note: I am using OSGI R6 Annotations in AEM 6.2
Servlet:
--------
@Component(immediate = true,
service = Servlet.class,
property = {
"sling.servlet.paths=/express/bin/getDynamicData",
"sling.servlet.extensions=json",
"sling.servlet.methods=GET"
}
)
@Designate(ocd=DynamicDataServlet.Configuration.class)
public class DynamicDataServlet extends SlingSafeMethodsServlet {
@Reference
private DynamicDataService dynamicService;
@Override
protected void doGet(final SlingHttpServletRequest request,
final SlingHttpServletResponse response) throws ServletException, IOException {
------------
-------------
dynamicService.getData(resourceResolver, region) ;
}
}
Service interface:
-------------------
public interface DynamicDataService {
JSONObject getDynamicData(ResourceResolver resourceResolver, String region);
}
ServiceImpl:
----------------
@Component
(service = DynamicDataService.class, name = "TNT Dynamic Data Service", immediate =true)
public class DynamicDataServiceImpl implements DynamicDataService {
@Override
public JSONObject getDynamicData(ResourceResolver resourceResolver, String region) {
--------
--------
-------
}
}