Мой файл приветствия возвращает пустую страницу в Open Liberty

#websphere-liberty #open-liberty

Вопрос:

На Open Liberty 21.0.0.6. вместо представления моей страницы приветствия JSF мой браузер возвращает пустое содержимое, когда я указываю на него http://<host>:<port>/<ctxRoot> ,

web.xml

 <web-app id="WebApp_ID" version="4.0"
    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">

  <display-name>MyJSF</display-name>

  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  </servlet>

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

   <welcome-file-list>
      <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>

</web-app>
 

и набор функций:

server.xml

 <server>
  <featureManager>
    <feature>jaxrs-2.1</feature>
    <feature>cdi-2.0</feature>
    <feature>jpa-2.2</feature>
    <feature>jdbc-4.3</feature>
    <feature>jsf-2.3</feature>
    <feature>mpHealth-3.0</feature>
  </featureManager>
 

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

У меня также есть некоторые другие вещи в моем приложении, такие как JPA и JAX-RS.

Ответ №1:

ОСНОВНАЯ ПРИЧИНА — приложение JAX-RS с путем к приложению «/»

В моем случае проблема в том, что у меня было приложение JAX-RS, настроенное для использования: @ApplicationPath("/") что противоречило моей цели, чтобы путь к приложению «/» обслуживал файл приветствия.

решение

Переместите приложение JAX-RS на свой собственный путь в рамках ВОЙНЫ, например:

 import javax.ws.rs.core.Application;

@ApplicationPath("/api")
public class TestApp extends Application { }

 

мысли

На это было легко наткнуться, взяв существующее простое приложение JAX-RS, используя «/» в качестве пути к приложению, а затем добавив в него JSF. Тогда я подумал, что у меня возникли проблемы с реализацией JSF.