2013-12-09 14 views
5

Sto tentando di configurare Tomcat 6 sull'istanza del mio server (nuova installazione di Windows Server 2008 R2 Enterprise). Voglio rendere disponibile un servizio Java EE tramite un URL.Configurazione di Tomcat 7 sul server: "NB: JAVA_HOME dovrebbe puntare a un JDK non JRE" ... Perché?

Funziona tramite localhost sul server. Inserisco il file .war nel mio /webapps, eseguo startup.bat nello /bin e poi sono passato a localhost:80/myWebServce nel mio browser per essere indirizzato alla mia pagina di benvenuto.

Quando cerco di creare un servizio eseguendo service.bat (nella cartella /bin)) ottengo un messaggio di errore che dice:

The JAVA_HOME environment variable is not defined correctly 
This environment variable is needed to run this program 
NB: JAVA_HOME should point to a JDK not a JRE 

La mia domanda è: perché? Pensavo che un JDK fosse solo un JRE + Alcuni strumenti di sviluppo (un IDE, un debugger ecc.). Perché tomcat ha bisogno di un JDK Per essere eseguito come servizio, ma non su localhost? Cosa c'è in un JDK necessario per eseguire un servizio web?

risposta

5

Tomcat non richiede un JDK. Tomcat viene fornito con il compilatore JDT di Eclipse che Tomcat utilizza come parte del processo * .jsp -> * .java -> *. Class per convertire JSP in servlet compilati.

Tuttavia, se si specifica JAVA_HOME, Tomcat si aspetta che faccia riferimento a un'installazione JDK completa. Se si desidera utilizzare un JRE, è necessario impostare JRE_HOME anziché JAVA_HOME.

0

contenitori Web richiedono JDK al fine di sostenere la compilazione di fonti come JSP, come compilatore è esistente nel JDK richiede lo stesso. (Questo è uno dei motivi per cui si può richiedere JDK)

0

Fai JAVA_HOME come sistema variabile invece di variabile di ambiente, riavviare l'applicazione (Tomcat). Dovrebbe funzionare bene.

In alternativa si potrebbe essere di fronte stesso problema come discusso here

+1

questa non è la sua domanda. La sua domanda è "perché" richiede un JDK. –

+0

non è, è solo un messaggio predefinito che viene mostrato quando qualcosa non va. – Daniel

0

sì che richiedono jdk inorder per eseguire la vostra esigenza .. dal momento che si sta fornendo il file .war, abbiamo bisogno comando jar per estrarre contenuti da guerra, vaso .. File. il comando jar non è stato trovato in JRE ma solo in JDK. se desideri, puoi fare il checkout a JDK, JRE. questa è la cosa fondamentale che ho osservato a parte le altre cose.

0

Verificare che JAVA_HOME sia impostato correttamente e se è stato installato JDK creare JRE_HOME per jre, JAVA_HOME verrà impostato per JDK. Alternare tra "C:/Progra~1/..." e "C:/Program Files/..." per assicurarsi che il sistema riconosca correttamente il percorso

6

rimuovere il punto e virgola dalla fine delle variabili JRE_HOME/JAVA_HOME. non ci dovrebbe essere il punto e virgola ...

variabile: JAVA_HOME valore: C: \ Program Files \ Java \ jdk1.6.0 (nota: nessuna virgola alla fine)

variabile: JRE_HOME valore: C: \ Programmi \ Java \ jre1.6.0 (nota: nessun punto e virgola alla fine)

Applica le modifiche precedenti ed esegui il tuo tomcat correttamente.

+0

ha funzionato per me .. :) grazie. – santoshM

Problemi correlati