Domanda

Ho installato e configurato tomcat + solr anche sulla mia macchina Linux personale e su Windows. Sono stato in grado di farli funzionare bene. Sono molto nuovo su Java e su come funziona la struttura dei file. (vale a dire sapere dove mettere i file di guerra e cos'è WEB-INF) Quindi ora che sono pronto per installare solr e configurarlo sul piano di hosting condiviso dei miei clienti, le indicazioni sono diverse da quelle che ho fatto prima. Non voglio rovinare tutto e apparentemente il server web si riavvia quotidianamente e non credo di poterlo fare manualmente, il che significa che ho una possibilità di farlo ogni giorno.

Ecco le indicazioni per l'installazione di un servlet Tomcat sul suo provider di hosting: http://www.apluskb.com/scripts/Where_do_I_put_my_answer1186.html

Come puoi vedere, devo installare solr nella directory html / WEB-INF, ma leggi cosa dice .. è molto confuso:

  

" Tutti i servlet devono essere caricati nella directory / html / WEB-INF / classes . Eventuali classi e risorse personalizzate decompresse devono essere caricate nella directory / html / WEB-INF / classes , mentre le classi e le risorse contenute nei file Jar devono essere caricate in . / html / WEB-INF / lib "

uhh ... quindi che cos'è? /classi? o / lib? Non credo che lo spieghino molto bene e sono un po 'confuso da questa affermazione. Inoltre, cosa installo esattamente? Con una normale installazione di solr, solr viene messo altrove, il file war viene copiato in tomcat e il resto di solr viene referenziato usando un qualche tipo di file di configurazione XML.

Inoltre, dal momento che sono un po 'nuovo su Java e sui servlet, qualcuno può spiegarmi la struttura del file Tomcat (in modo dettagliato otterrò sicuramente un +1 da me) e dove dovrebbero andare le cose e perché?

Grazie in anticipo!

È stato utile?

Soluzione

La struttura dell'applicazione Web è definita dalle specifiche J2EE, non è limitata (o specifica) a Tomcat in sé. Ecco un tutorial dettagliato che ne copre il layout. In breve, tuttavia, è il seguente:

  1. Esiste una cartella base (root, home, qualunque cosa tu voglia chiamarla) che funge da root dell'applicazione web, tutto il resto vi passa sotto.
  2. Tutte le cose pubbliche (html, immagini, CSS, javascript, JSP, cosa hai) vanno sotto quella cartella (direttamente o tramite sottocartelle).
  3. Esiste una cartella speciale, anch'essa situata direttamente sotto root, chiamata WEB-INF . Contiene contenuti non pubblici, come il descrittore dell'applicazione ( web.xml ), le classi (che vanno nella cartella WEB-INF / classes ), le librerie ( WEB- INF / lib ) e possibilmente file di configurazione.
  4. L'applicazione può essere distribuita utilizzando la struttura espansa sopra o come WAR (archivio Web) che è fondamentalmente un archivio contenente tutto quanto sopra a partire dal livello della cartella radice (ma non includendo radice).

La distinzione tra le cartelle classi e lib è semplice: tutte le librerie in pacchetto (file JAR) devono andare in lib ; tutte le classi non pacchettizzate (e i file di risorse che devono essere nel percorso di classe) devono andare in classi preservando la loro struttura di directory (es. com.mypackage.Blah class dovrebbe andare in classes / com / mypackage / )

Nel tuo caso, sembra che tu possa avere una sola applicazione web distribuita e deve essere distribuita nella cartella / html . Se stai distribuendo un file war, devi estrarlo in quella directory (ad es. Dalla cartella / html esegui jar xvf solr.war o come si chiama) .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top