Настройка URL-адреса приложения на сервере WAS, откуда он/грани/происходит?

Как устанавливается URL-адрес при развертывании приложения на сервере WAS? В отличие от контекста, который я устанавливаю, я получаю /faces/ в URL-адресе. Я не знаю, откуда это происходит.

Ответ 1

/faces/ распознается как шаблон URL JSF 1.0/1.1, где FacesServlet часто по умолчанию отображается на основе IDE-сгенерированного проекта configuratoin, который впоследствии не редактировался разработчиком. Вы можете увидеть это в web.xml как нечто подобное:

<servlet-mapping>
    <servlet-name>Faces Servlet<servlet-name>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

Возможно, есть и <welcome-file> напр. faces/index.xhtml или около того.

Чтобы избавиться от него, просто замените его на *.xhtml.

<servlet-mapping>
    <servlet-name>Faces Servlet<servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

Таким образом, вы можете открыть страницу JSF http://example.com/context/page.xhtml вместо http://example.com/context/faces/page.xhtml, чтобы запустить FacesServlet (это именно тот, который отвечает за все работы JSF).

Или, когда вы на самом деле используете устаревший JSF 1.x и/или когда вы фактически используете устаревший JSP вместо своих преемников Facelets (XHTML), вместо этого вы можете использовать *.jsf.

<servlet-mapping>
    <servlet-name>Faces Servlet<servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>

Таким образом, вы можете открыть страницу JSF http://example.com/context/page.jsf вместо http://example.com/context/faces/page.jsp.

См. также: