Ho un'app Ring che si distribuisce in produzione come una cosa uberwar
; myservice.war. Nella produzione del file WAR viene gettato in Jetty dove si corre in un contesto che segue il suo nomeÈ possibile eseguire l'esecuzione headless del server lein ring su uno specifico contesto servlet?
$ curl -i -X GET http://myservice.qa1.example.com:8080/myservice/healthz
HTTP/1.1 200 OK
...
Quando ho eseguito a livello locale attraverso l'anello Lein, ho bisogno di correre nello stesso contesto; myservice.
$lein ring server-headless
2015-10-14 14:04:03,457 level=INFO [main] Server:271 - jetty-7.6.13.v20130916
2015-10-14 14:04:03,482 level=INFO [main] AbstractConnector:338 - Started [email protected]:10313
Started server on port 10313
Ma lo stesso ricciolo va su tutti i 404 su di me localmente.
$ curl -i -X GET http://localhost:10313/myservice/healthz
HTTP/1.1 404 Not Found
...
La cosa del lein ring lo ha implementato nel contesto radice.
$ curl -i -X GET http://localhost:10313/healthz
HTTP/1.1 200 OK
...
Che dire? Come faccio a dirigere le lein ring per la distribuzione in un nome di contesto da me scelto? Ho bisogno di curl -i -X GET http://localhost:10313/myservice/healthz
per lavorare da lein ring
Oh mio. Ottima risposta Domani vedrò se funziona per me. –
Hmmm.Posso vedere cosa sta cercando di fare, ma quando corro in Jetty è sempre Not Found per/myservice/healthz. Questa soluzione è davvero intelligente, ma dovendo spiegare i 2 diversi gestori in: ring vs: uberjar sarà una dura vendita nelle revisioni del codice. Mi sembra una lacuna, cosa? Lein-anello? –
La risposta "Not Found" che si è vista potrebbe essere dovuta al fatto che il profilo uberjar non si avvia durante la costruzione di uberwar. Ciò potrebbe essere dovuto ad una vecchia versione del plugin 'lein-ring' o ad alcuni errori di battitura. Se '/ myservice/myservice/healthz' funziona, probabilmente questo è il problema. – ez121sl