JSF: Nicht Gefunden im ExternalContext als Ressource Ausnahme
Habe ich die bestehende Anwendung geschrieben, die mit einer Art von hand-made JSP. Es enthält eine Klasse, die von HttpServlet
Umgang mit allen Anforderungen und seine eigenen HTML-template-Sprache. Ich versuche zu umschreiben, dass es mit gemeinsamen JSF templating-syntax. Jetzt bin ich versucht, zu umschreiben, eine Gruppe von Seiten. Also habe ich Folgendes gemacht:
Ich habe mich registriert die neue servlet-Eintrag in web.xml (Klasse javax.faces.webapp.FacesServlet
, url-Muster - /jsp/*
)
und diesen code in alt-servlet-Klasse:
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;
}
}
Aber wenn ich gehe zu dieser Seite bekam ich folgende exception:
/myNewPage.xhtml, die Nicht in ExternalContext als Ressource
Mit diesem Aufruf-stack (letzten Zeilen):
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)
Bitte sagen Sie mir, was ist hier falsch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die Karte das FacesServlet, um das URL-Muster
/jsp/*
, und den Zugriff auf die Seite/jsp/myNewPage.xhtml
, die damit verbundenen ResourceResolver werden versuchen, Suche die Ressource mit Pfad/myNewPage.xhtml
mit derExternalContext
, und im Gegenzug dieServletContext
Objekt.Dies würde bedeuten, dass die
myNewPage.xhtml
Seite vorhanden sein muss, dieWebContent
, andernfalls würde ein Fehler gemeldet werden. Durch die Inferenz, müssen Sie diemyNewPage.xhtml
Seite unter WebContent oder Lesen Sie die Seite mit den/jsp/<sub-directory-path>/myNewPage.xhtml
URL in Ihrem servlet, wo das sub-directory-Pfad verweist auf das Verzeichnis-Pfad, unter dem WebContent-Verzeichnis.myNewPage.xhtml
sollte in der Wurzel des KRIEGES, und nicht in der/jsp
sub-directory./jsp/jsp/myNewPage.xhtml
im servlet, wie es in der Antwort.