Краткая версия: как заставить сервлет наибольше соответствовать на основе нескольких селекторов, используя аннотации Felix для sling сервлетов?
У меня есть несколько сервлетов, определенных в пакете OSGI. Я использую аннотации org.apache.felix.scr.annotations.sling.SlingServlet.
@SlingServlet(
methods={GET},
selectors {"v1"}
...
)
public class MyServlet extends SlingAllMethodsServlet {}
...
@SlingServlet(
methods={GET},
selectors {"v1","special"}
...
)
public class MySpecialServlet extends MyServlet {}
Моя проблема в том, что я не могу найти способ заставить MySpecialServlet обрабатывать запросы только при наличии обоих селекторов.
GET http://localhost/my/resource.v1.special.json
Иногда он будет обрабатывать запросы только для селектора v1.
GET http://localhost/my/resource.v1.json
Кажется, что после публикации нового jar-файла через веб-консоль felix, если я запрошу двойной селектор resource.v1.special.json перед любым другим ресурсом, MySpecialServlet также продолжит обрабатывать запросы только v1.
Есть ли способ заставить более общий сервлет обрабатывать более общий список селекторов, используя текущие аннотации? Я пропустил часть аннотации? Я считаю, что эта система может использовать более старую аннотацию. Может быть, стоит мигрировать? Я стараюсь не быть слишком навязчивым для этой маленькой задачи, которую меня попросили сделать.
Потерпите меня, если я объединил части этих технологий. Я только что подошел к этой проблеме, и я все еще разбираюсь с ней. Пожалуйста, исправьте любое несоответствие терминов.