Ответ 1
Ваш код не работает, потому что ContextHandler
фактически не загружает содержимое.
Небольшая настройка сделает его видом работы, но для того, чтобы сделать то, что вы действительно хотите, вам нужно будет написать собственный обработчик.
Версия типа "вид работ":
ContextHandler capHandler = new ContextHandler();
capHandler.setContextPath("/clientaccesspolicy.xml");
ResourceHandler resHandler = new ResourceHandler();
resHandler.setBaseResource(Resource.newClassPathResource("clientaccesspolicy.xml"));
capHandler.setHandler(resHandler);
Но, эта версия рассматривает /clientaccesspolicy.xml
как каталог, поэтому перенаправляет на /clientaccesspolicy.xml/
, а затем отображает содержимое XML файла.
Похоже, что вам нужна версия ResourceHandler
, которая имеет поиск url = > ресурса.
Jetty не отправляет с обработчиком, который делает это, но вы должны иметь возможность создать подкласс ResourceHandler
, а затем переопределить getResource
. В этом случае вам не нужно [или хотите] ContextHandler, просто проверьте на вызовы "/clientaccesspolicy.xml" и сопоставьте его с правильным ресурсом ClassPath.