Salve a tutti,
è la mia prima volta qui.
Veniamo al dunque, ho sviluppato una webapp in jsp e deployata in Tomcat su un cloud server.
A fine lavori, per rendere il sito raggiungibile tramite indirizzo "normale" (www.mio_dominio.it) ho fatto il port forward da 80 ad 8080 ed associato il dominio registrato per la webapp editando il file server.xml (in tomcat/conf), in questa maniera:
<Host name="localhost" appBase="webapps"...
</Host>
<Host name="mio_dominio.it" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>www.mio_dominio.it</Alias>
<Context path="" docBase="cartella_app" debug="0" privileged="true" />
<Context path="/app_data" docBase="/home/cloud/app_data" />
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" resolveHosts="false" />
</Host>
</Engine>
Ok, funziona tutto bene, ma il problema è che ora è come se ci fossero due istanze della webapp in esecuzione:
- una sotto: www.mio_dominio.it
- e una sotto: www.mio_dominio.it/cartella_app
Facendo un po di debug ho provato a stampare il risultato di
application.getContextPath() ed infatti il risultato è che ci sono due contesti in esecuzione:
- restituisce "una stringa vuota" per www.mio_dominio.it/index.jsp
- e "/cartella_app" per www.mio_dominio.it/cartella_app/index.jsp
la conseguenza ovviamente è che le modifiche fatte in Runtime sotto un contesto (es.inserimento eventi da parte dell'utente) non si rispecchiano nell'altro contesto (a meno di riavviare Tomcat) ...in poche parole in www.mio_dominio.it/index.jsp vedo le informazioni vecchie, mentre in www.mio_dominio.it/cartella_app/index.jsp vedo le modifiche fatte dall'utente.
Visto che sono abbastanza nuovo dell'argomento non capisco dove sbaglio, dovrei cambiare il path del contesto (per l'host mio_dominio.it) in "/cartella_app"?
Oppure dovrei cambiare l' appBase in "webapps/cartella_app"?
Oppure ancora forse sbaglio a caricare il WAR della webapp tramite il Tomcat Manager App che raggiungo dall'indirizzo cloud_server_IP:8080?
Dovrei forse abilitare un Tomcat Manager specifico per mio_dominio.it:8080?
Grazie a tutti per l'attenzione!