0
訪問的OSGi的servlet我試圖用http://localhost:4502/sling/test-services/planet.html
CQ5通過網址
訪問下面的吊索的servlet但是,它給404錯誤,不知道我在做什麼錯在這裏。
@Component
@Service(value=javax.servlet.Servlet.class)
@Properties({
@Property(name="service.description", value="HTML renderer for Planet resources"),
@Property(name="service.vendor", value="The Apache Software Foundation"),
@Property(name="sling.servlet.resourceTypes", value="sling/test-services/planet"),
@Property(name="sling.servlet.extensions", value="html"),
@Property(name="sling.servlet.methods", value="GET")
})
@SuppressWarnings("serial")
public class PlanetResourceRenderingServlet extends SlingSafeMethodsServlet {
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
final ValueMap properties = request.getResource().adaptTo(ValueMap.class);
// TODO should escape output - good enough for our tests
final PrintWriter pw = response.getWriter();
pw.println(String.format("<html><head><title>Planet at %s</title></head><body>", request.getResource().getPath()));
pw.println(String.format("<p>Name: %s</p>", properties.get("name")));
pw.println(String.format("<p>Distance: %s</p>", properties.get("distance")));
pw.println("</body></html>");
pw.flush();
}
}
是否有可能,我可以訪問沒有「.html」擴展名的servlet服務,如果我刪除擴展屬性?
我很感激任何幫助。
謝謝!
我會嘗試路徑。我看到很多servlet的智慧路徑「/ bin」,我是否需要將「/ bin/sling/test-services/planet」或「sling/test-services/planet」工作? – Sri
默認情況下,腳本解析器配置中允許使用'/ bin'。因此,使用'/ bin/sling/test-services/planet'就不需要對配置進行任何修改。但是如果你使用'/ sling/test-services/planet',你可能需要明確地在腳本解析器中允許'/ sling /'。 – rakhi4110
像往常一樣,讓我提醒大家,如果可以避免註冊Sling servlet,建議不要使用路徑,請參閱https://sling.apache.org/documentation/the-sling-sling中的「sling.servlets.path」部分。發動機/ servlets.html –