all servlets always called twice!
We have had this issue since the beginning.
All servlets, no matter how configured, always get run twice, even though they are only called once. We have the same problem with servlets in wknd, or in our own, completely different project, or in an empty project.
We are hitting the local aem sdk author instance on a mac
e.g this servlet:
(service = { Servlet.class })
@SlingServletPaths(value="/bin/test/2")
@ServiceDescription("Simple Demo Servlet 2")
public class MyServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 1L;
final static Logger log = LoggerFactory.getLogger(MyServlet.class);
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) {
try {
log.info("doGet() called");
response.getWriter().println("hello 1");
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) {
try {
log.info("doPost() called");
response.getWriter().println("hello 2");
} catch (IOException e) {
e.printStackTrace();
}
}
}
When called a single time, either via postman, or via browser, we always see two calls run. See error.log below:
2021-04-21 11:45:29.112 DEBUG [com.xx.core.filters.LoggingFilter] request for /bin/test/2, with selector null
2021-04-21 11:45:29.112 DEBUG [com.xx.core.filters.LoggingFilter] request for /bin/test/2, with selector null
2021-04-21 11:45:29.112 INFO [com.xx.core.servlets.MyServlet] doGet() called
2021-04-21 11:45:29.112 INFO [com.xx.core.servlets.MyServlet] doGet() called
in the access log, we only see one call:
[0:0:0:0:0:0:0:1] - admin 21/Apr/2021:11:51:33 +0200 "GET /bin/test/2 HTTP/1.1" 200 8 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36"