Нет, API не существует. Параметр является внутренним для Tomcat, он не раскрывает его непосредственно внешнему миру. (Как вы сказали, вы можете разобрать web.xml - поскольку это XML, было бы просто написать XQuery, чтобы вытащить это).
Также я думаю, что вы, кажется, не понимаете, как именно это должно работать. Вы предоставляете Tomcat URI, который он будет использовать для обслуживания тела HTML ответа 404. Он должен быть в состоянии разрешить этот URI в фактический ресурс так же, как если бы он был предоставлен в запросе. Поэтому во многих случаях вам не нужен сервлет, чтобы определить, существует ли ресурс - вам нужен сервлет, содержащий ресурс для обслуживания . Исключение составляют случаи, когда вы используете Tomcat для предоставления статических данных файловой системы для некоторых URL-адресов, что, я считаю, возможно, хотя и используется редко.
Если у вас настроен Tomcat без каких-либо сервлетов, что вы ожидаете в любом случае? Откуда вы ожидаете, что он получит вашу страницу error.jsp
? Откуда ты это знаешь? Вам нужно добавить хотя бы один сервлет в Tomcat (содержащий файл error.jsp
), а затем убедитесь, что web.xml сопоставляет URL-адрес /error/error.jsp
с этим сервлетом (а ресурс расположен в подкаталоге error). в сервлете).
Как только это будет сделано, вы сможете вручную перейти, например, к. http://localhost:8080/<context>/error/error.jsp
и ответ получен (возможно, с каким-то странным контентом, поскольку нет фактического исключения, но файл должен быть найден). Точно так же, если вы правильно установили директиву страницы ошибок в файле web.xml, переход по размеченному URL-адресу (например, http://localhost:8080/<context>/asdfghjasgh
) должен показать вашу страницу ошибки как ответ 404.