2017-10-03 3 views
0

나는 다음과 같이 보이는 클라이언트 측,에 원시 아약스 호출을 수행하고,XMLHttpRequest의 및 AEM 서블릿

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(); 
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)); 
    } 
} 

내가 404을 가지고 , 그리고 왜 경로가 동일하고 또한 contentTypes인지 정확히 알지 못합니다. 아무도 단서가 있습니까?

답변

0

코드는 좋은 뭔가가 설정 측에없는 것 같습니다

당신이 펠릭스 콘솔에 로그인 할 수 있습니다 http://localhost:4502/system/console/bundles

는 번들 프로젝트 및 서비스 ID XX 유형과 서블릿 확인 확장 : javax.servlet.Servlet 및 기타 세부 *이 또한 번들이 설치되어 있지 보장하고 활성 상태

그런 다음 http://localhost:4502/system/console/configMgr에 가서 아파치 슬링 서블릿/스크립트 해결 프로그램 실행 연평균 확인 ths에/bin/entry가 포함되어 있습니다.

위의 구성이 http://localhost:4502/system/console/servletresolver 으로 이동하면 서블릿 응답을 확인하십시오.

다음은 내가 해결하는 데 도움이되는 구성입니다. 404