Solved
Servlet Returning Null data as json
package com.genc.core.core.models;
import javax.inject.Inject;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Via;
import org.apache.sling.models.annotations.injectorspecific.SlingObject;
@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class DemoServlet
{
@SlingObject
private Resource resource;
@Inject
@Via("resource")
private String subtitle;
@Inject
@Via("resource")
private String description;
public String getUserTitle(){
return resource.getValueMap().get("title",String.class);
}
public String getUserSubTitle(){
return subtitle;
}
public String getUserDescription()
{
return description;
}
}
package com.genc.core.core.servlets;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.genc.core.core.models.DemoServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.HttpConstants;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.servlets.annotations.SlingServletResourceTypes;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component(immediate = true,service = Servlet.class)
@SlingServletResourceTypes(
methods = {HttpConstants.METHOD_GET},
resourceTypes = "aem-practice/components/page",
selectors = {"test"},
extensions = {"json","xml"}
)
public class GetServlet extends SlingAllMethodsServlet {
private static final Logger LOG = LoggerFactory.getLogger(GetServlet.class);
@Override
protected void doGet(final SlingHttpServletRequest req,
final SlingHttpServletResponse resp) throws ServletException, IOException
{
DemoServlet demo=req.adaptTo(DemoServlet.class);
if(demo!=null){
Map<String,Object> propertiesValues=new HashMap<>();
propertiesValues.put("Title",demo.getUserTitle());
propertiesValues.put("SubTitle",demo.getUserSubTitle());
propertiesValues.put("Description",demo.getUserDescription());
resp.setContentType("application/json");
ObjectMapper objectMapper=new ObjectMapper();
objectMapper.writeValue(resp.getWriter(),propertiesValues);
}
else{
resp.getWriter().write("Sling Model Not Found");
}
}
}
Please help me to resolve the issue