Konfigurieren Sie Restlet, um JSPs in Google App Engine zurückzugeben?

8

Ich habe eine Restlet-Anwendung entwickelt. Ich möchte eine JSP-Datei bei einer URL-Anfrage über Restlet zurückgeben. Wie kann ich dies erreichen, ohne eine Umleitung zu verwenden?

d. Nehmen wir an, ich habe die Datei "contact.jsp" auf mydomain.com und möchte, dass die Leute auf contact.jsp unter Ссылка

In Restlet hätte ich also:

%Vor%

Aber wie kann ich die Seite "contact.jsp" zurückgeben? Ich weiß, dass eine Weiterleitung funktionieren würde, aber ich möchte nicht, dass Nutzer das ".jsp" in " Ссылка " sehen. Oder gibt es eine andere Strategie, die ohne Restlet funktioniert? Vielleicht eine Änderung meiner web.xml Datei?

Bearbeiten (2009-08-14):

Meine unten angegebene Antwort funktioniert nicht auf App-Engine und Restlet. Es funktioniert jedoch, wenn ich Restlet nicht einschließe oder Restlet das URL-Muster "/ *"

zugestatte

Was wäre ideal, eine Unterklasse des Routers zu haben, die mir dies erlaubt:

%Vor%

Danke!

Bearbeiten (17.08.2009):

Ich bin überrascht, dass ich keine Antworten erhalten habe, seit ich ein Kopfgeld gepostet habe. Wird jemand kommentieren und mich wissen lassen, wenn meine Frage / Problem nicht klar ist?

Bearbeiten (17.08.2009):

Interessante Beobachtung. Wenn Sie die unten unter "Rich Seller" beschriebene Methode verwenden, funktioniert sie auf der Google App-Engine und nicht lokal. Außerdem, wenn ich Ссылка in Google App-Engine anrufe, umgeht es Restlet und geht direkt zur JSP. Aber lokal übernimmt Restlet. Das heißt, Ссылка geht nicht zur JSP und geht zu Restlet. Reagieren app-Engine-Anwendungen auf URLs als lokales Gegenstück anders?

    
JP Richardson 14.08.2009, 03:32
quelle

3 Antworten

1

"Ich möchte eine JSP-Datei bei einer URL-Anfrage über Restlet zurückgeben" - Nach meinem Verständnis werden JSPs in Servlets konvertiert. Da Servlets orthogonal zu Restlets sind, ist nicht sicher, wie Sie eine JSP-Datei über Restlet zurückgeben können.

Angenommen, Sie möchten JSP zusätzlich zu Restlet verwenden. Dies erreichen Sie am besten, indem Sie Ihre Restlets einem Rootpfad wie / rest anstelle von / * zuordnen und wie gewohnt die Datei .jsp verwenden.

    
Gmu 17.09.2010, 00:36
quelle
2

Restlet unterstützt derzeit keine JSPs direkt. Sie sind außerhalb des Servlet-Containers schwierig zu handhaben.

Es gibt eine Diskussion über Nabble zu diesem Thema, die Sie im Moment vielleicht nützlich finden Es sieht so aus, als müssten Sie entweder eine Weiterleitung an die in der web.xml als normal gemappte JSP zurückgeben oder sie hacken, um die JSP zu verarbeiten und den Stream als Repräsentation zurückzugeben.

Die Antwort vom 23. April 2009, 03:02 Uhr im Thread beschreibt, wie Sie den Hack machen können:

%Vor%

Die Quelle für den BufferedServletResponseWrapper wird einige Einträge später veröffentlicht.

    
Rich Seller 14.08.2009 07:57
quelle
1

Sieht wie eine einfache web.xml-Konfiguration aus.

%Vor%

Dies funktioniert ohne Restlet in App-Engine. Aber sobald ich Restlet einfüge, funktioniert es nicht, wenn ich mein Reslet-URL-Muster auf "/ *"

setze     
JP Richardson 14.08.2009 03:55
quelle