У меня было похожее разочарование. Возможно, то, что я узнал, может помочь.
У меня были записи Маршрутизатора в моем классе Приложения, как это:
router.attach("/users", UsersResource.class);
И все работало нормально, когда мое отображение сервлета было таким:
<servlet-mapping>
<servlet-name>Sandbox</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Когда я изменил что-то вроде этого:
<servlet-mapping>
<servlet-name>Sandbox</servlet-name>
<url-pattern>/users/*</url-pattern>
</servlet-mapping>
перестал работать.
Проблема в том, что контейнер сервлета «потребляет» или удаляет часть URL-адреса, которой он соответствует. В этом случае он удаляет «/ users». Так что, если вы использовали URL-адрес, как это:
http://www.mywebsite.com/users
вы должны изменить его на:
http://www.mywebsite.com/users/users
Конечно, вы можете сделать URL-шаблон таким, каким хотите:
<servlet-mapping>
<servlet-name>Sandbox</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
и тогда вы получите к нему следующий доступ:
http://www.mywebsite.com/rest/users
Шаблон url удаляется, и вы получаете то, что осталось в вашем классе Application для ваших собственных целей маршрутизации.
НТН