Domanda

Sto ereditando un progetto e (secondo le istruzioni dell'altro sviluppatore) ho sovrascritto la versione di Tomcat di catalina.bat con il suo (sta usando la stessa versione).Ho quindi provato a riavviare Tomcat e ho ricevuto un'eccezione relativa a commons-logging.jar, che è una dipendenza di Tomcat.

Dopo molta frustrazione, ho appena scaricato una versione diversa di Tomcat e ho provato a eseguirlo immediatamente (nessuna configurazione)... e ho ricevuto lo stesso errore!

Così ho chiesto questa domanda su SO qualche giorno fa.L'opinione generale era che il mio percorso di classe si fosse in qualche modo "sporcato", e ora mi chiedo se il catalina.bat file che ho copiato ciecamente su cui ho impostato in qualche modo variabili ambientali che influiscono sulla capacità di Tomcat di eseguire il bootstrap, anche tra versioni diverse.

So che questa domanda è simile all'altra che ho posto ma è diversa.Mentre la mia prima domanda era "cosa c'è che non va qui" ed era molto più generale, ciò che chiedo ora (sebbene correlato) è più specifico e riguarda catalina.bat e come si relaziona alle variabili di ambiente di Windows 7.

Grazie per qualsiasi aiuto qui.

Modificare:Vedo che questa domanda ha già un voto vicino per essere "fuori tema".La mia argomentazione contraria è la seguente:SO è un sito di domande e risposte sulla programmazione per porre domande specifiche relative al codice e alla programmazione. catalina.bat è uno script, ovvero un codice, e questa domanda riguarda un potenziale bug/difetto in uno script che sto utilizzando.

Modificare:Ho trovato la linea catalina.bat da dove proviene il messaggio di errore (e, allo stesso modo, da dove sta morendo l'avvio di Tomcat).È la linea (dalla versione invariata di 7.0.19):

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME% " -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%

sono riuscito a piazzare echos nello script e ottenuto i seguenti valori:

JAVA_OPTS = -Djava.util.logging.config.file="C:\Program Files\Apache\apache-to
mcat-7.0.19\conf\logging.properties" -Djava.util.logging.manager=org.apache.juli
.ClassLoaderLogManager
CATALINA_OPTS =
DEBUG_OPTS =
JAVA_ENDORSED_DIRS = C:\Program Files\Apache\apache-tomcat-7.0.19\endorsed
CLASSPATH = C:\Program Files\Apache\apache-tomcat-7.0.19\bin\bootstrap.jar
CATALINA_BASE = C:\Program Files\Apache\apache-tomcat-7.0.19
CATALINA_HOME = C:\Program Files\Apache\apache-tomcat-7.0.19
CATALINA_TMPDIR = C:\Program Files\Apache\apache-tomcat-7.0.19\temp
MAINCLASS is org.apache.catalina.startup.Bootstrap
CMD_LINE_ARGS =
ACTION = start

JAVA_OPTS ha tutta la mia attenzione con il logging.properties E ClassLoaderLogManager inserimenti.Questo significa? nulla ad ognuno?!?

È stato utile?

Soluzione

puoi impostare le variabili di ambiente in qualsiasi file batch, incluso catalina.bat.Ma questi cambiamenti rimangono solo nell'ambiente di esecuzione corrente e non influenzeranno tutti gli altri ambienti di esecuzione.

Per CLASSPATH, cerca nei file batch corrispondenti se vedi qualcosa di simile set CLASSPATH= che forniscono informazioni sul classpath impostato.

Altri suggerimenti

Guardando le risposte precedenti alla tua altra domanda, non sembra che il consenso fosse che il percorso di classe fosse diventato "sporco".Ma piuttosto la configurazione stessa di Tomcat era diventata sporca essendo un mix di diverse versioni di Tomcat.

Tieni presente che Tomcat, per impostazione predefinita, non utilizza i valori del tuo file CLASSPATH, proprio per evitare problemi come da te delineato.Dovresti esaminare il file che ti ha dato il tuo collega per vedere cosa ha cambiato esattamente al suo interno (considerando che puoi scrivere praticamente qualsiasi cosa in un file BAT, è quasi impossibile individuare il problema esatto in base alla descrizione che hai fornito).

Buona fortuna.

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