Если я определяю Sling Servlet следующим образом:
@SlingServlet(
label="TestResourceTypeServlet",
name = "com.company.project.servlets.TestResourceType",
extensions = {"bob"},
resourceTypes= {"cq:Page"},
methods= {"GET"},
metatype=true)
@Properties({
@Property(name = "service.description", value = "A test servlet"),
@Property(name = "service.vendor", value = "Company")
})
Сервлет принимает любой запрос на получение каждой страницы с расширением '.bob', что хорошо, но я действительно хочу обработать запрос к определенному типу страницы,
ТАК
Я изменяю resourceTypes для чтения
resourceTypes= {"site-administration/components/page/page-distribution"},
предоставленное значение - это конкретный sling:resourceType (скопированный и вставленный из CRXDE Lite) страницы, к которой я пытаюсь получить доступ с расширением .bob, но я получаю 404!!!
Вся документация, которую я прочитал, говорит, что вышеизложенное должно работать, но это не так.
В отчаянии я даже попробовал "site-administration/components/page"
, который является супертипом страницы, которую я хочу.
Я использую чистый экземпляр 5.6.1 с этим сервлетом как часть пакета OSGi.
Я упустил что-то очевидное здесь, или, если нет, кто-нибудь знает какие-либо оперативные исправления, которые могли бы решить эту проблему ?
Любая помощь будет оценена по достоинству, так как я начинаю немного сходить с ума в голове.
ИЗМЕНИТЬ
Итак, я продвинулся немного дальше: если я захожу на страницу с помощью:
[path-to-page]/page.bob.html
Сервлет срабатывает. Но в этом URL bob
не селектор? и если да, то почему, когда тип ресурса cq:Page
, конфигурация работает с bob как с расширением?
Очень запутался :-С
Мне явно не хватает чего-то очень простого.