View Full Version : [Tomcat] problema con gli URL
Ciao a tutti,
volevo chiedervi se qualcuno di voi ha risolto un problema che mi sta dando molto fastidio.
Nella cartella "web-apps" di Tomcat ho una cartella con il nome "hello": l'applicazione "hello" è quindi raggiungibile all'URL http://localhost:8080/hello.
Il mio problema è il seguente: vorrei che "hello" fosse raggiungibile da due URL diverse e cioè:
1) http://localhost:8080/pippo/helloWorld
e
2) http://localhost:8080/pippo
è possibile senza duplicare cartelle in "web-apps"? Se si come?? Quali file di conf devo cambiare???
Grazie a chi mi risponderà :)
isAlreadyInUse
02-01-2008, 08:18
A che pro?
Per farla semplice puoi mettere una pagina che fa solo la redirect
Grazie della risposta.
Non c'è un modo senza redirect (agire solo sui file di configurazione di tomcat)?
isAlreadyInUse
02-01-2008, 08:40
Credo di si faccio un controllo e ti fo sapere
Di nuovo grazie, se si può fare mi leveresti una spina dal fianco!
texerasmo
02-01-2008, 09:28
puoi usare il modulo jk e fai fare questo lavoro ad apache.
Oppure prova a mettere un server-alias nel tuo server.xml
puoi usare il modulo jk e fai fare questo lavoro ad apache.
Oppure prova a mettere un server-alias nel tuo server.xml
Da quanto ho letto nella documentazione di Tomcat, l'elemento server-alias non è valido (ma lo è Alias sottoelemento di Host).
Tuttavia penso che non vada bene nel mio caso (riporto dalla documentazione di tomcat):
In many server environments, Network Administrators have configured more than one network name (in the Domain Name Service (DNS) server), that resolve to the IP address of the same server. Normally, each such network name would be configured as a separate Host element in conf/server.xml, each with its own set of web applications.
L'host è uno solo (cioè ho un solo network name), non mi serve aggiungere alias (altri network name) al file di configurazione.
Per quanto riguarda Apache e jk, utilizzo Tomcat anche come web server.
Altre idee?
Per quanto riguarda Apache e jk, utilizzo Tomcat anche come web server.
Altre idee?
devi mappare l'uri /pippo su hello o vuoi solo che a due uri corrisponda la stessa web app?
devi mappare l'uri /pippo su hello o vuoi solo che a due uri corrisponda la stessa web app?
Mi potresti spiegare entrambe le soluzioni (mi sfugge la sfumatura/differenza) ?
Grazie
Mi potresti spiegare entrambe le soluzioni (mi sfugge la sfumatura/differenza) ?
Grazie
forse sono io che non ho capito esattamente che cosa vuoi fare.
se hai una webapp e vuoi che sia raggiungibile da due url senza farne il deploy due volte puoi dichiarare due context dfferenti che puntano alla stessa directory.
mettiamo che la tua webapp sia contenuta in una directory "pippo" (che deve essere esterna alla dir "webapp", diciamo che è in \apache-tomcat\webapp2\pippo).
crea dentro \apache-tomcat\conf\Catalina\localhost due file pluto.xml e topolino.xml che contengono:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapp2/pippo" >
</Context>
a questo punto dovresti avere la tua webapp esposta sia sulla url:
http://tuoserver/pluto
che su
http://tuoserver/topolino
e' quello che vuoi?
se hai una webapp e vuoi che sia raggiungibile da due url senza farne il deploy due volte puoi dichiarare due context dfferenti che puntano alla stessa directory.
...
http://tuoserver/pluto
che su
http://tuoserver/topolino
Grazie della risposta! Penso ci stiamo avvicinando alla soluzione.
Il mio problema è che mi servirebbe un url più articolato tipo:
http://tuoserver/topolino/helloWorld
e
http://tuoserver/topolino
che puntano alla stessa applicazione (nota che il nome della cartella è hello e l'url è helloWorld)
Si può fare?
Poi altra domanda: perché l'applicazione deve essere esterna alla cartella di default "webapp"?
[EDIT] Possibile risposta al primo quesito: basta rinominare il file in \apache-tomcat\conf\Catalina\localhost\ come
topolino#helloWorld.xml e topolino.xml
ed entrambi hanno
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapp2/pippo" >
</Context>
in modo tale da raggiungere l'applicazione usando
http://tuoserver/topolino/helloWorld
e
http://tuoserver/topolino
Il quesito due rimane (perché webapp2 e non webapp?).
Ti/Vi prego correggetemi se sbaglio.
webapp è di default la server root e non puoi definire altri contesti lì dentro, che io sappia.
webapp è di default la server root e non puoi definire altri contesti lì dentro, che io sappia.
Scusa è corretto quando dico:
Possibile risposta al primo quesito: basta rinominare il file in \apache-tomcat\conf\Catalina\localhost\ come
topolino#helloWorld.xml e topolino.xml
ed entrambi hanno
http://tuoserver/topolino/helloWorld
e
http://tuoserver/topolino
sì non ho scritto nulla perchè è corretto.
webapp è di default la server root e non puoi definire altri contesti lì dentro, che io sappia.
Ok in CATALINA_HOME/conf/localhost/ ho un file di nome pippo.xml del genere
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapp2/hello" >
</Context>
Ma all'avvio di tomcat mi compare l'errore:
Document base c:\apache tomcat\webapps\pippo does not exist or is not a readable directory
Qualche idea??
la server root la definisci nel server.xml ma cambiandola non risolvi nulla.
i contesti li puoi definire solo fuori dalla server root (e' indicato nella documentazione). qual e' il problema?
Ok in CATALINA_HOME/conf/localhost/ ho un file di nome pippo.xml del genere
l'hai messo in conf/Catalina/localhost ?
ho fatto una prova sul mio tomcat (v 5.5) e funziona.
l'hai messo in conf/Catalina/localhost ?
Si prima ho sbagliato a digitare il path :)
ho fatto una prova sul mio tomcat (v 5.5) e funziona.
No non dirmi così!! Io sto provando ma non funziona!
Allora ricapitolando:
in D:\Apache-Tomcat\apache-tomcat-5.5.25\conf\Catalina\localhost\pippo.xml
che contiene:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:\Apache-Tomcat\apache-tomcat-5.5.25\webapps2\sample" >
</Context>
dove sample è una directory che contiene un'applicazione semplice.
La cartella D:\Apache-Tomcat\apache-tomcat-5.5.25\webapps l'ho lasciata così come era (non ho creato alcuna directory).
Quando avvio tomcat (vers. 5.5 anche la mia) mi compare l'errore:
A docBase D:\Apache-Tomcat\apache-tomcat-5.5.25\webapps2\sample inside the host appBase has been specified, and will be ignored
e
Document base D:\Apache-Tomcat\apache-tomcat-5.5.25\webapps\pippo does not exist or is not a readable directory
Perché mi richiede la presenza di una dir di nome pippo (come il file pippo.xml) in webapps?
[EDIT]: RISOLTO!
Il problema era che la directory webapps2 va rinominata in qualcosa tipo abc.
Grazie a chi mi ha aiutato (un ringraziamento speciale a kingv :) ).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.