Запрет доступа к странице jspx из браузера - PullRequest
1 голос
/ 02 сентября 2011

Я создал файл test.jspx в WEB-INF и пытаюсь получить к нему доступ через сервлет с помощью диспетчера запросов, но получаю java.lang.RuntimeException: Cannot find FacesContext.

Отображение web.xml выглядит так:следующим образом:

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

Работает нормально, если я использую .jsp.

Мой код диспетчера запроса следующий:

RequestDispatcher dispatcher=getServletContext().getRequestDispatcher("/WEB-INF/test.jspx?sessid="+id);
dispatcher.forward( request, response );

1 Ответ

1 голос
/ 02 сентября 2011

URL-адрес запроса (который вы видите в адресной строке браузера) или прямой адрес (который вы использовали в RequestDispatcher#forward()) должен соответствовать шаблону URL-адреса FacesServlet, чтобы получить его длязапустите и обработайте все компоненты JSF на странице JSF.

Вы сопоставили FacesServlet шаблон URL-адреса /faces/* и пытаетесь вызвать его из какого-нибудь доморощенного сервлета (почему?),поэтому прямой URL должен соответствовать этому шаблону URL.Поместите страницу за пределы /WEB-INF и перейдите на /faces/test.jspx.

...