2013-02-20 16 views
12

Sono nuovo al molo e alle architetture client/server.Come si ferma il molo

Sono riuscito a scrivere un server jetty in eclissi e funziona.

Ma come posso fermare un server molo? Ho sentito qualcosa su stop.jar e start.jar. Dove posso trovarlo? È integrato nel jetty-all-jar?

risposta

20

I vari artefatti jetty-all.jar possono essere utilizzati per l'utilizzo del molo incorporato. Se decidi di utilizzare questo jar, devi gestire il tuo avvio/spegnimento.

Aggiornamento: 2015: A partire dal molo 9, l'uso di jetty-all.jar come una dipendenza è deprecato. Questo perché a partire da Jetty 9, è ora impossibile soddisfare "tutti" di Jetty in un unico contenitore di aggregazione. Ci sono componenti di Jetty che non possono essere inclusi in quanto potrebbero causare problemi con questo jar aggregato. Il futuro di Jetty, con supporto HTTP/2, rende anche questo contenitore aggregato meno utile come dipendenza.

Utilizzo tipico modalità incorporata

Il filo che avvia il server:

Server server = new Server(); 
// various server configuration lines 
// ... 

// Start server (on current thread) 
server.start(); 

// Have current thread wait till server is done running 
server.join(); 

L'altro filo che indica al server di arresto

// Have server stop running 
server.stop(); 

A questo punto l'originale l'attesa del thread su server.join(); è stata completata e il thread continua a essere in esecuzione.

standard Usage distribuzione

Se si utilizza la distribuzione standard disponibili da download.eclipse.org/jetty/ avete la start.jar che può essere utilizzato per avviare/fermare pontile stesso.

Una volta decompressa la tua distribuzione di jetty, troverai uno start.jar nella directory più in alto. Questo può essere usato come segue.

Il processo che inizia molo:

$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret 

Il processo che si ferma molo:

$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret --stop 
+0

Grazie per la risposta. Ho usato stop(), ma ero ancora in grado di inviare una richiesta, quindi ho pensato che non funzionasse. Ma penso, il mio problema è stato, che ho iniziato più di una sola istanza. Ora ho un metodo di avvio e riavvio, che posso chiamare nel terminale e funziona. Dovrò aggiungere un'autentificazione al mio avvio e interrompere i metodi, ma questo è un altro problema. – Salvadora

+0

Ehi, sai se esiste un modo per riavviare il molo senza riprendere il thread che ha unito()? – lisak

2

Se molo come plugin di Maven, si ferma il server premendo Ctrl + C e premere Y per confermare terminare.

Problemi correlati