JSF: не найден в ExternalContext как исключение ресурса - PullRequest
0 голосов
/ 20 июля 2011

У меня есть приложение, написанное с использованием какой-то ручной JSP.Он содержит один класс, производный от HttpServlet, обрабатывающий все запросы, и собственный язык шаблонов HTML.Я пытаюсь переписать его, используя общий синтаксис шаблонов JSF.Прямо сейчас я пытаюсь переписать один набор страниц.Поэтому я сделал следующее: я зарегистрировал новую запись сервлета в web.xml (класс - javax.faces.webapp.FacesServlet, шаблон URL - /jsp/*) и поместил этот код в старый класс сервлета:

ExistingServlet::doGet(request, response)
{
    // some old code
    if(page we are going to is my new page)
    {
        RequestDispatcher dispatcher = request.getRequestDispatcher("/jsp/myNewPage.xhtml");
        dispatcher.forward(request, response);

        return;
    }
}

Но если яЯ иду на эту страницу, я получил следующее исключение:

/ myNewPage.xhtml Не найден в ExternalContext как ресурс

С этим стеком вызовов (последние строки):

at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:224)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:265)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:201)
at com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:114)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:227)

Пожалуйста, скажите мне, что здесь не так.

1 Ответ

4 голосов
/ 20 июля 2011

Когда вы сопоставляете FacesServlet с шаблоном URL /jsp/* и обращаетесь к странице /jsp/myNewPage.xhtml, связанный ResourceResolver попытается найти ресурс с путем /myNewPage.xhtml, используя ExternalContext, и, в свою очередь, ServletContext object.

Это будет означать, что страница myNewPage.xhtml должна присутствовать в WebContent, в противном случае будет сообщено об ошибке.Выводом: вы должны поместить страницу myNewPage.xhtml в WebContent или обратиться к странице, используя URL-адрес /jsp/<sub-directory-path>/myNewPage.xhtml в вашем сервлете, где путь к подкаталогу относится к пути к каталогу в каталоге WebContent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...