Domanda

Sto cercando di ottenere Groovy in esecuzione all'interno di Tomcat con gli URL semplificati. Dal momento che la mia conoscenza della mappatura e filtri URL di Tomcat è abbastanza limitata, che sto funzionando in un muro di mattoni.

Quello che mi piacerebbe è quello di creare un front-controller chiamato index.groovy che gestisce tutte le richieste in arrivo. Il problema è che io non riesco a capire come creare le mappature web.xml corretti. Questo è quello che ho attualmente (che è praticamente di serie):

<servlet>
    <servlet-name>Groovy</servlet-name>
    <servlet-class>groovy.servlet.GroovyServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Groovy</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

Se io ora provo ad accedere al mio istanza con il seguente URL, ho un 404.

http://localhost:8080/GroovyTest/index.groovy/test

Naturalmente, Idealmente mi piacerebbe lo script index.groovy da eseguire dove posso prendere il resto del percorso.

È stato utile?

Soluzione

Penso che il problema principale qui è il vostro equivoco su come sia la servlet mappatura un l'GroovyServlet funziona. Quindi, ecco una breve spiegazione:

  • Quando si descrive come la mappatura, significa che tutti gli URL che corrispondono al "/ *" modello saranno inviati alla classe GroovyServlet. Con tale modello generico, tutto l'url sono validi, che può portare ad alcuni problemi, ad esempio quando si cerca di accedere alle immagini, stili, ecc ...
  • Il GroovyServlet è già un dispatcher. Se si guarda il codice sorgente, vedrete che, grazie alla sua eredità, sarà semplicemente verificare che il percorso indicato esiste sotto il "/ WEB-INF / / groovy" directory. Nel tuo esempio, vuol dire che cerca una "/WEB-INF/groovy/index.groovy/test" file
  • Se il file esiste, viene eseguito come uno script Groovy (con qualche decoratore), e il risultato viene restituito con un "/ html testo" tipo MIME.

Ora penso che si può chiaramente capire perché non funziona su di voi esempio. Vorrei piuttosto suggerire altri due approcci per raggiungere te obiettivo:

  • avere uno sguardo un Grails , E 'uno dei framework più adatto per fare sviluppo web Groovy.
  • Prendere la fonte del Gaelyk micro-quadro. Non solo è un buon inizio per capire come il lavoro di dispacciamento, ma ha anche un bel tutorial per aiutare gestire gli URL semplificati
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top