2012-03-01 14 views
5

Ho bisogno di eseguire il molo, specificare il file di guerra e farlo decomprimere da Jetty in una posizione specifica. Il comportamento comune di Jetty è di prendere la directory TEMP o la directory JETTY_HOME/work e decomprimere il file di guerra in una sottocartella denominata in questo modo: jetty-HOST-PORT-CONTEXT.war -_- any- Questo è assolutamente inappropriato per il nostro ambiente perché la parte PORT è casuale. Il file di guerra deve essere decompresso da Jetty e la destinazione deve essere flessibile al 100%.Jetty: decomprimere .war nella cartella specifica

È possibile? Per favore consiglio Il jetty non è la mia area di competenza, perdonami se la domanda è zoppa o banale, tuttavia googling non aiuta molto.

Grazie mille!

+0

http://wiki.eclipse.org/Jetty/Howto/Deploy_Web_Applications#Deploying_Webapps? – Jayan

+0

Puoi spiegare _ perché è necessario questo comportamento? Ho la sensazione che tu stia cercando di risolvere il problema sbagliato ... – Tim

+0

@Tim c'è un'applicazione che deve avviare il molo nel seguente modo: command-to-start-jetty PORT path-to-war-file path-where -to-mettere-estratti-guerra-file. L'applicazione prende il controllo dei lavoratori e imposta la porta disponibile casuale all'avvio. – Slava

risposta

5

Grazie a tutti. Sono riuscito a raggiungere il requisito che si estende Jetty con il seguente codice:

int port = 8080; 
String context_path = "/"; 
File tmp_directory = "C:\\some-custom-path\\"; 
String war_path = "C:\\path-to-a\\file.war"; 

WebAppContext app = new WebAppContext(); 
app.setContextPath(context_path); 
app.setWar(war_path); 
app.setTempDirectory(tmp_directory); 

Server server = new Server(port); 
server.setHandler(app); 
server.start(); 
server.join(); 

app.setTempDirectory chiamata rende Jetty scompattare guerra-file nella cartella personalizzata. Non ho trovato nessun altro modo, ma la soluzione mi sta bene.

1

(non provato, basta leggere dalla pagina wiki jetty wiki) È possibile estrarre la guerra in una directory predefinita. E quindi fornire tale cartella come argomento setWar.

Server server = new Server(8080); 
    WebAppContext webapp = new WebAppContext(); 
    webapp.setContextPath("/"); 
    webapp.setWar(jetty_home+"/webapps/testlocation/"); 
    server.setHandler(webapp); 
+0

Grazie. È possibile tramite i file di configurazione? – Slava

Problemi correlati