2013-07-06 12 views
5

Sto facendo un'applicazione web Java utilizzando eclipse e server tomcat. Voglio sapere cosa succede quando eseguo il mio sito web su Tomcat? Quali sono i passi che Eclipse fa in background per eseguire l'applicazione su tomcat.Cosa succede quando eseguo un'applicazione su tomcat in Eclipse

Questo vi aiuterà a capire quando per spegnere il server (durante il debug)/quando pulire il server ecc

ho bisogno di sapere ciò che accade nel server in modo che posso ottenere meglio a debug.

In questo momento tutto ciò che faccio è riavviare il server ogni volta che qualcosa va storto. Ho perso abbastanza tempo per farlo. Credo di dover investire un po 'di tempo in più per capire cosa succede dietro le quinte.

+0

si può dire Eclipse, nella configurazione del server, se si desidera utilizzare la propria istanza interna di Tomcat o uno che si ho installato. Una discussione completa sulla configurazione va oltre lo scopo di SO, ma dovresti esaminare la documentazione di Eclipse, le finestre di dialogo di configurazione "Server" e le [FAQ di Eclipse Tomcat] (http://wiki.eclipse.org/WTP_Tomcat_FAQ#How_does_WTP_support_separate_Tomcat_server_instances .3F) –

+0

Ho solo bisogno di alcuni ampi passaggi su come Eclipse riesce a eseguire codice sul server Tomcat. – user590849

+0

Hai visto le FAQ che ho collegato nel mio commento precedente? –

risposta

16

ipotesi Ambiente

I assumerà:

  • target/classes è la cartella di destinazione per le classi compilate
  • src/main/webapp è la cartella del contenuto dell'applicazione Web
  • Project > Build Automatically opzione è selezionata

Deployme nt directory

Eclipse utilizza la distribuzione WAR esplosa, ovvero l'applicazione distribuita viene distribuita come una cartella, non un singolo archivio di file. I file dell'applicazione vengono posizionati e caricati da ${workspace}/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/.

editrice

Publishing è un processo centrale che è responsabile per l'assemblaggio e la distribuzione dell'applicazione web. Quando si parla di Tomcat locale, ciò significa copiare il contenuto Web ", classi compilate, librerie, ..." nella directory di distribuzione (quella in .metadata).

Eclipse è in grado di eseguire pubblicazioni parziali, ad esempio quando una singola risorsa cambia (ad esempio alcuni JSP), Eclipse pubblicherà solo quel singolo file.

Per impostazione predefinita, il processo di pubblicazione viene eseguito automaticamente quando alcune risorse cambiano. Questo può essere modificato nelle impostazioni del server (fare doppio clic sul nome del server nella vista Server).

Publishing setting

Modifica risorsa statica

Se si modifica consente di dire src/main/webapp/resources/myApp/css/main.css:

  • su pubblicare il file viene copiato nella cartella di distribuzione
  • risorsa è immediatamente disponibile al server clienti

Modifica file JSP

Se si modifica il file JSP:

  • su pubblicare il file viene copiato nella cartella di distribuzione
  • Tomcat si accorge che il file JSP è cambiato e ricompila esso
  • modificato JSP è pronto per il rendering del contenuto

La modifica del file Java

Se si modifica un file sorgente Java:

  • il file viene compilato in target/classes
  • su pubblicare il file viene copiato nella cartella di distribuzione
  • Tomcat notices that a class file was changed e ricarica il contesto (es l'applicazione Web viene riavviata)

È possibile disattivare la funzione di ricaricamento automatico nelle impostazioni del server nella scheda Moduli. Senza il ricaricamento automatico è comunque possibile utilizzare la funzione hot swap, che è in grado di sostituire il codice nella JVM in esecuzione. Questo è possibile solo quando le firme dei metodi non vengono modificate.

Auto reloading feature

Se si desidera una soluzione più avanzata (cioè non si limita a cambiare solo un corpo metodo) quando si tratta di ricaricare le modifiche Java, si dovrebbe verificare progetti come JRebel (non gratuito).

Pulizia

L'applicazione distribuita può essere danneggiata.Vale la pena notare, che quando si desidera pulire le risorse completamente compilati e pubblicati, si dovrebbe:

  • Pulire le classi compilate (Project > Clean... - cancella target/classes)
  • Pulire i file distribuiti (Server > Clean... - cancella cartella di distribuzione)
  • directory di lavoro Clean Tomcat (Server > Clean Tomcat Work Directory... - cancella compilati JSP)
+0

bella risposta – VedX

+0

perfetta ti meriti +1. una query fa la pulizia riavvia internamente il server? – piechuckerr

Problemi correlati