Java 无法注册servlet
我已经创建了一个servlet。我在ApacheSlingServlet解析器中添加了servlet路径。我正在使用与servlet路径相同的url启动一个ajax调用。但是servlet没有注册,在ajax调用之后,流不会进入servlet。我正在使用AEM 6.5 PFB Servlet代码Java 无法注册servlet,java,sling,aem-6,Java,Sling,Aem 6,我已经创建了一个servlet。我在ApacheSlingServlet解析器中添加了servlet路径。我正在使用与servlet路径相同的url启动一个ajax调用。但是servlet没有注册,在ajax调用之后,流不会进入servlet。我正在使用AEM 6.5 PFB Servlet代码 package com.aem.poc.core.servlets; import java.io.IOException; import java.rmi.ServerException; im
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();
}
}
}
请帮助解决此问题您不会从servlet返回任何响应。使用
response.getWriter().write(“Hello JSON”)代码>希望这有帮助。非常感谢您的回复。我一定会那样做。但是Servlet被忽略了,即使我在ApacheSlingServlet解析器中包含了路径,并且使用了适当的注释。当我通过路径注册servlet时,请告诉我,当它被忽略时,有什么解决方案。因为当我在system/console/servletresolver中尝试时,我得到了“servlet不存在”响应,您可以检查osgi配置中的脚本解析器执行路径中是否添加了“/bin/”。如果没有添加,那么当您注册了以/bin/开头的路径时,在点击servlet路径时将出现404错误。默认情况下,它应该存在。
$(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);
}
});
});
});