2017-10-03 1 views
0

Je fais un appel ajax cru sur le clientside, qui ressemblent à ce qui suit,XMLHttpRequest et AEM Servlet

var url = '/bin/denisa/dummyServlet'; 
var xhr = new XMLHttpRequest(); 
xhr.open('GET', url); 
xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); 
xhr.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01'); 
xhr.onload = function() { 
if (xhr.status === 200) { 
alert('deni'); 

} 
    else { 
    alert('Request failed. Returned status of ' + xhr.status); 
    } 
}; 
xhr.send(); 

au servlet suivant AEM:

@Component(
    service = { 
    Servlet.class 
    }, 
    property = { 
    "sling.servlet.paths=/bin/denisa/dummyServlet", 
    "sling.servlet.extensions=json", 
    "sling.servlet.methods=GET" 
    } 
) 
public class DummyServlet extends SlingSafeMethodsServlet { 

    private static final Logger LOG = LoggerFactory.getLogger(DummyServlet .class); 

    @Reference 
    private dummyService dummyService; 

    @Override 
    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException { 

    Gson gson = new Gson(); 
    JsonElement jsonElement = gson.toJsonTree(dummyService); 
    response.setContentType("application/json"); 
    response.getWriter().write(gson.toJson(jsonElement)); 
    } 
} 

Je suis un 404 , et je ne sais pas exactement pourquoi parce que le chemin est le même, et aussi contentTypes. Est-ce que quelqu'un a une idée?

Répondre

0

Votre code semble bon, il semble qu'il manque quelque chose du côté de la configuration

pouvez vous connecter à la console felix http://localhost:4502/system/console/bundles

Développer votre projet ensemble et vérifier votre servlet avec ID du service xx Types : javax.servlet.Servlet et d'autres détails * Assurez-vous également le faisceau est pas installé et à l'état actif

Ensuite, allez à http://localhost:4502/system/console/configMgr et vérifier Apache Sling Servlet/script résolveur exécution pa ths contains/bin/entry

Si les configurations mentionnées ci-dessus se dirigent vers http://localhost:4502/system/console/servletresolver , vérifiez la réponse de la servlet.

Voici une partie de la configuration qui m'a aidé à résoudre 404