webForumDet fria alternativet

Tomcat virtual directory

4 svar · 494 visningar · startad av antilizaer

antilizaerMedlem sedan apr. 200358 inlägg
#1

Hejsan!

Går det att sätta upp "virtual directories" i Tomcat? Har två applikationer som svarar under https://www.site1.se resp www.site2.se. Båda sajterna använder sig av samma bilder så för att slippa lägga upp samma bild på två ställen så skulle jag vilja kunna skapa ett "virtual directory" images som går till t ex mappen c:\www\images är detta möjligt att göra i Tomcat.

Det måste även gå att köra:

String path = pageContext.getServletContext().getRealPath("/images");

från en jsp sida för sen görs en kontroll att bilden verkligen finns rent fysikiskt på disk, för att undvika att visa bilder som inte finns.

Har tidigare kört lösningen på Linux och där kan man ju göra en symlänk och få det att fungera, men nu ska allt flyttas till en Windows 2003 Web Edition och där finns det väl inget som motsvarar symboliska länkar eller?

Har letat men inte funnit något hur man konfa detta i Tomcat eller så har jag letat på fel ställe, någon här som vet om det går och i så fall hur?

LimeMedlem sedan sep. 2001837 inlägg
#2

Finns (minst) 2 sätt att göra det på.
1. Gör samma på Windows, d.v.s. gör en länk till den katalog som du behöver komma åt. (FULT)
2. Gör en ny host i den context som används.

<Host name="lime.com">
<Context path="" docBase="C:/www/hosts/lime.com/webapps" reloadable="true" debug="0" />
<Context path="/images" docBase="C:/www/hosts/shared/images" />
</Host>

<Host name="lemmon.com">
<Context path="" docBase="C:/www/hosts/lemmon.com/webapps" reloadable="true" debug="0" />
<Context path="/images" docBase="C:/www/hosts/shared/images" />
</Host>

Båda funkar.

antilizaerMedlem sedan apr. 200358 inlägg
#3

Tackar! Funkar bra med att visa bilderna, dock så funkar det inte med att köra getRealPath(...). Får nog lösa den bit med hjälp av en absoultadress till bildkatalogen som läses från en property fil, eller ska det fungera med getRealPath(...) !? Images ligger ju nu i en annan context än jsp sida som kör getRealPath() metoden, så därför är väl inte ServletContext objektet medvetet om images katalogen eller tänker jag fel nu...

antilizaerMedlem sedan apr. 200358 inlägg
#4

Hittade hur man skulle göra, efter lite letandet i Tomcats "Server Configuration Reference"

1. Sätt: crossContext="true" i <Context> taggen i server.xml för Tomcat
2. Kör följande kod i jsp sidan:

pageContext.getServletContext().getContext("/images").gerRealPath("filnamn");
LimeMedlem sedan sep. 2001837 inlägg
#5

Just det. Förlåt mig, den detaljen glömde jag.

Genererad på 376 ms · cache AV · v20260730165559-full.f96bc7eb