Я создал сервлет. Я добавил путь к сервлету в Apache sling servlet resolver. Я запускаю ajax вызов с URL-адресом, аналогичным пути сервлета. Но сервлет не зарегистрирован, поток не go к сервлету после вызова ajax. Я использую AEM 6.5.
Код сервлета PFB
package com.aem.poc.core.servlets;
import java.io.IOException;
import java.rmi.ServerException;
import com.aem.poc.core.service.WaterHeightService;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.jcr.api.SlingRepository;
import java.util.*;
//DS Annotations
import org.apache.sling.servlets.annotations.SlingServletPaths;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import javax.servlet.Servlet;
import org.osgi.framework.Constants;
import org.apache.sling.api.servlets.HttpConstants;
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
@SlingServletPaths("/bin/heightSearchServlet")
@Component(service=Servlet.class)
public class WaterHeightServlet extends org.apache.sling.api.servlets.SlingAllMethodsServlet {
//private static final long serialVersionUID = 2598426539166789515L;
@Reference
private SlingRepository repository;
@Reference
private WaterHeightService whs;
List<Map> waterHeightList = new ArrayList<>();
public void bindRepository(SlingRepository repository) {
this.repository = repository;
}
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServerException, IOException {
try
{
String requiredHeight = request.getParameter("id");
waterHeightList.addAll(whs.getHeightList());
Logger log = LoggerFactory.getLogger(WaterHeightServlet.class);
//log.debug("passed param value is"+requiredHeight);
for (Map item: waterHeightList) {
log.debug("map item is"+item.get("datevalue"));
}
//response . write() trturn the data
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Вызов ajax выглядит следующим образом:
$(document).ready(function() {
//$('body').hide().fadeIn(5000);
$('#fetch-heightdetails').click(function() {
var targetHeight= $('#heightValue').val() ;
$.ajax({
type: 'GET',
url:'/bin/heightSearchServlet',
data:'id='+targetHeight ,
success: function(msg){
var json = jQuery.parseJSON(msg);
console.log(json);
}
});
});
});
Пожалуйста, помогите решить проблему