Пользовательская страница ошибок tomcat не отображается - PullRequest
0 голосов
/ 08 января 2019

Я бы хотел настроить tomcat 9 с пользовательскими страницами ошибок HTML, чтобы он не отображал никаких подробностей при возникновении ошибки или при вызове URL-адреса, который не сопоставлен ни с одним из развернутых веб-приложений.

Это страница ошибок сервера, не привязанная к какому-либо конкретному развернутому веб-приложению.

Также стоит отметить, что мой экземпляр tomcat не имеет веб-приложения ROOT:

# ll
total 4
lrwxrwxrwx. 1 tomcat tomcat   27 Jan  7 15:37 mywebapp -> /var/webapps/mywebapp/web
drwxr-xr-x. 2 tomcat tomcat   54 Jan  7 19:19 errorpage
drwxr-x---. 4 tomcat tomcat   37 Jan  4 16:41 healthcheck
-rwxr-xr-x. 1 tomcat tomcat 3985 Sep 14 15:37 healthcheck.war
drwxr-xr-x. 5 tomcat tomcat   87 Jan  4 16:30 host-manager
drwxr-xr-x. 5 tomcat tomcat  103 Jan  4 16:30 manager

Пока я пытался добавить к tomcat/conf/web.xml:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0">

    ...

    <error-page>
        <error-code>404</error-code>
        <location>/errorpage/404.html</location>
    </error-page>

    <error-page>
        <error-code>500</error-code>
        <location>/errorpage/500.html</location>
    </error-page>
    <error-page>
        <error-code>400</error-code>
        <location>/errorpage/400.html</location>
    </error-page>

</web-app>

И развернуло errorpage веб-приложение под tomcat/webapps/errorpage:

# ll webapps/errorpage/
total 12
-rw-r--r--. 1 tomcat tomcat 4 Jan  7 19:19 400.html
-rw-r--r--. 1 tomcat tomcat 4 Jan  7 19:19 404.html
-rw-r--r--. 1 tomcat tomcat 4 Jan  7 19:19 500.html

Если я вызываю страницы ошибок непосредственно, они обслуживаются:

# curl localhost:8080/errorpage/404.html
404

Однако при запросе случайного URL я все равно получаю страницу ошибки по умолчанию http 404.

# curl localhost:8080/ffffff
<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title>(...)<h3>Apache Tomcat/9.0.10</h3></body></html>

Чего здесь не хватает?

...