Aem 如何通过其URL访问SlingServlet?
我已经创建了一个OSGi包并上传到CQ5服务器。此捆绑包包含如下所示的SlingServlet:Aem 如何通过其URL访问SlingServlet?,aem,sling,crx,Aem,Sling,Crx,我已经创建了一个OSGi包并上传到CQ5服务器。此捆绑包包含如下所示的SlingServlet: @SlingServlet(paths = { "/rest/matches" }, methods = { "POST", "GET" }) public class MatchDayRestServlet extends SlingAllMethodsServlet { private static final long serialVersionUID = 50886437362288
@SlingServlet(paths = { "/rest/matches" }, methods = { "POST", "GET" })
public class MatchDayRestServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 5088643736228890684L;
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
String responseString = "Hello World!";
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().write(responseString);
response.getWriter().flush();
response.getWriter().close();
}
}
现在我被绊住了,因为我不知道应该使用什么URL来调用这个servlet
我的CRXDE位于
http://HOST:IP/crx/de/index.jsp
在Apache Sling Servlet/Script解析器和错误处理程序的执行路径中添加/rest/
,可在http://host:ip/system/console/configMgr
,然后使用URLhttp://host:ip/rest/matches
在此期间,我使用“/bin/matches”路径进行了尝试,结果成功了。这可能是因为“/bin/”路径已添加到执行路径中。不过,我想最好使用“/rest/”路径。谢谢你的评论!请注意,在Sling中,在所需路径上创建资源,并通过Sling:resourceType属性配置servlet来处理它,比在路径上装载servlet更为可取。他有更多的信息。除此之外,您认为只有特定路径前缀才允许servlet执行是正确的,正如您的系统上配置的那样。