Можно ли настроить ErrorPageErrorHandler таким образом, чтобы он перенаправлял на статическую страницу, если контент / служба не найдена?
Вот мой код:
server = new Server(port);
Resource webRoot = Resource.newResource(webContent);
if (!webRoot.exists()) {
logger.warn("Unable to find root resource:" + webRoot.getName());
} else {
logger.info("Root resource is " + webRoot.getName());
}
ResourceHandler res = new ResourceHandler();
res.setBaseResource(webRoot);
res.setDirAllowed(false);
//servlet handler
ServletContextHandler servletCtx = new ServletContextHandler(ServletContextHandler.SESSIONS);
servletCtx.setContextPath("/service");
servletCtx.addServlet(new ServletHolder("sample", new MyServletSample()), "/sample");
ErrorPageErrorHandler errorHandler = new ErrorPageErrorHandler();
errorHandler.addErrorPage(404, "index.html");
servletCtx.setErrorHandler(errorHandler);
// static file handler
ContextHandler staticCtx = new ContextHandler("/");
staticCtx.setBaseResource(webRoot);
staticCtx.setHandler(res);
// add handlers
HandlerList handlerList = new HandlerList();
handlerList.addHandler(servletCtx);
handlerList.addHandler(staticCtx);
// add handerList to server
server.setHandler(handlerList);
Этот код показываетme index.html на localhost: 8080, и я могу получить доступ к образцу службы http://localhost:8080/service/sample. Однако я хочу показать страницу статической ошибки (т. е. документацию), которая будет отображаться, если произошла ошибка типа «404 Not Found».
С этим кодом обработчик ошибок регистрирует:
"WARN oejserver.handler.ErrorHandler - страница ошибок не найдена index.html"
.Каков правильный способ / синтаксис для определения URI?
Заранее спасибо!