8
votes

Configurez la restauration pour revenir à JSPS sur Google App Moteur?

J'ai une application de restauration développée. Je souhaite retourner un fichier JSP sur une demande d'URL via Restlet. Comment puis-je y arriver sans utiliser de redirection?

I.e. Disons que j'ai le fichier "contact.jsp" sur mydomain.com et je veux que les gens puissent accéder à contact.jsp à HTTP : //mydomain.com/contact

Ainsi, dans Restlet, j'aurais: xxx

mais comment puis-je retourner le " contacter.jsp "page? Je sais qu'un redirection fonctionnerait, mais je ne veux pas que les utilisateurs voient le ".jsp" dans " http: / /MyDomain.com/Contact.jsp "... ou existe-t-il une autre stratégie qui fonctionnerait sans même utiliser de restitution? Peut-être une modification de mon fichier web.xml?

EDIT (2009-08-14):

Ma réponse affichée ci-dessous ne fonctionne pas sur App-moteur et Restlet. Cela fonctionne toutefois, si je n'incluiez pas de restitution, ou autoriser la restauration à avoir un modèle d'URL de "/ *"

Qu'est-ce que l'idéal est d'avoir une sous-classe du routeur qui me permet de Faites ceci: xxx

merci!

EDIT (2009-08-17):

Je suis surpris de l'avoir t eu des réponses depuis que j'ai posté une prime. Est-ce que quelqu'un commenter et me faire savoir si ma question / problème n'est pas claire?

Edit (2009-08-17):

Observation intéressante. Lors de l'utilisation de la méthode décrite par "Rich Seller" ci-dessous, elle fonctionne lorsqu'elle est déployée sur Google App-Moteur et non localement. De plus, si j'appelle http://mydomain.com/contact.jsp sur Google App-Moteur IT Bypasses Restos et va directement au JSP. Mais, localement, la restauration prend la relève. C'est-à-dire http: // localhost: 8080 / contact.jsp ne va pas au JSP et va à Restos. Les applications de moteur d'application déployées répondent-elles différemment aux URL comme contrepartie locale?


0 commentaires

3 Réponses :


1
votes

ressemble à une simple configuration Web.xml.

<servlet>
     <servlet-name>contactServlet</servlet-name>
     <jsp-file>/contact.jsp</jsp-file>
</servlet>

<servlet-mapping>
     <servlet-name>contactServlet</servlet-name>
     <url-pattern>/contact</url-pattern>
</servlet-mapping>


1 commentaires

Cela fonctionne si vous violez avec l'ordre de vos mappages de servlet



2
votes

Restelle ne prend actuellement pas directement en charge JSPS. Ils sont difficiles à manipuler à l'extérieur du récipient de servlet.

Il y a un Discussion sur le marmot à propos de ce problème que vous pouvez trouver utile, au moment où il semble que vous ayez besoin de renvoyer une redirection à la JSP mappée comme normale dans le Web.xml ou de le pirater pour traiter le JSP et renvoyer la Stream comme la représentation.

la réponse datée "23 avril 2009; 03h02" Dans le thread décrit comment vous pouvez faire le piratage: xxx

la source du BufferedServletResponsewrapper est affiché quelques entrées plus tard.


4 commentaires

Quelle exception obtenez-vous?


Je ne suis pas près d'un IDE pour tester cela aujourd'hui, c'est donc une supposition. Avez-vous le mappage de servlet défini dans web.xml ainsi que le code Dispatcher? Ceci peut peut-être causer le problème.


Non, le seul cartographie de servlet que j'ai dans web.xml est la restauration.


Donc, voici une observation intéressante ... cela fonctionne lorsqu'il est déployé sur App-moteur. Cependant, cela ne fonctionne pas sur ma machine locale à Eclipse. Très étrange. Malheureusement, je ne peux pas l'utiliser jusqu'à ce que je puisse l'obtenir pour travailler sur ma machine locale, de sorte que je puisse déboguer. Toute réflexion sur la raison pour laquelle cela pourrait être?



1
votes

"J'aimerais renvoyer un fichier JSP sur une demande d'URL via Restlet" - Ma compréhension est que les JSP sont converties en servlets. Étant donné que les servlets sont orthogonol sur des restaurants non sûrs de la manière dont vous pouvez retourner un fichier JSP via Restlet.

En supposant que vous demandiez un moyen d'utiliser JSP en plus de la restauration, cela est mieux atteint en cartographiant vos restes à une base rocheuse telle que / repos au lieu de / * et à l'aide de .jsp comme d'habitude.


1 commentaires

Salut gmu! Je suis également confronté au même problème, pouvez-vous s'il vous plaît expliquer "Ceci est mieux atteint en cartographiant vos restaurants à un pathérique" un peu plus?