Tomcat - Dela på bibliotek över applikationer?

Permalänk
Medlem

Tomcat - Dela på bibliotek över applikationer?

Hej,

Jag har ett system som innehåller en mapp per hemsida på det här sättet.

app/site/hemsida1
app/site/hemsida2

Där jag i nuläget måste ha en mapp WEB-INF/lib i varje site-mapp med diverse jar-filer för att de olika sidorna ska fungera. Problemet är att när jag gör uppdateringar i dessa jar-filer måste de kopieras över mellan alla siter. Jag vill ha en sådan jar-fil som alla siter använder sig av i mappen app/WEB-INF/lib men får det inte att fungera.

Klarar tomcat av detta? - Hur sätter man då upp det?

I nuläget ser min server.xml ut såhär för apparna ovan:

<Host name="per1.hemligt.com" appBase="D:/www/app/site/hemsida1/"> <Context docBase="" path="" reloadable="true" useNaming="false"></Context> <Context docBase="../../" path="/system" reloadable="true"></Context> <Context docBase="../../admin" path="/admin" reloadable="true"></Context> </Host> <Host name="per2.hemligt.com" appBase="D:/www/app/site/hemsida2/"> <Context docBase="" path="" reloadable="true" useNaming="false"></Context> <Context docBase="../../" path="/system" reloadable="true"></Context> <Context docBase="../../admin" path="/admin" reloadable="true"></Context> </Host>

Tack

Visa signatur

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Brian W. Kernighan

Permalänk
Medlem

Hej,

Om du verkligen vill göra så som du säger så är det i lib-katalogen rakt under din tomcat-installation som du ska lägga dina jar-filer som du vill ha delade.

Tänk på att det kan bli spännande sidoeffekter av att bara ha en enda delad jar-fil om den är av lite mer avancerad karaktär (som t.ex. använder sig av statiska variabler som cache t.ex).

Det går heller inte att ladda om en delad jar-fil on-the-fly så har du gjort en ändring så behöver du starta om hela din tomcat-server.

Det går att läsa om hur tomcat laddar sina klasser här: http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html

//C

Permalänk
Medlem
Skrivet av conio:

Hej,

Om du verkligen vill göra så som du säger så är det i lib-katalogen rakt under din tomcat-installation som du ska lägga dina jar-filer som du vill ha delade.

Tänk på att det kan bli spännande sidoeffekter av att bara ha en enda delad jar-fil om den är av lite mer avancerad karaktär (som t.ex. använder sig av statiska variabler som cache t.ex).

Det går heller inte att ladda om en delad jar-fil on-the-fly så har du gjort en ändring så behöver du starta om hela din tomcat-server.

Det går att läsa om hur tomcat laddar sina klasser här: http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html

//C

Hej, tack för svaret.
Problemet är ju att jag inte vill att alla mina applikationer på servern ska ha tillgång till denna jar-fil utan bara de som ligger under just denna "app".
Lätt uttryckt vill jag på vissa sajter ställa om från standard: "WEB-INF/lib" till "../../WEB-INF/lib" vilket jag inte hittar någon information om att det går eller ej.
Är du med?

Visa signatur

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Brian W. Kernighan

Permalänk
Medlem

Ah,

Då är jag med hur du menar. Delade resurser mellan enbart vissa appar (context).

Då låter VirtualWebAppLoaders som något för dig.

//C

Permalänk
Medlem
Skrivet av conio:

Ah,

Då är jag med hur du menar. Delade resurser mellan enbart vissa appar (context).

Då låter VirtualWebAppLoaders som något för dig.

//C

Ja! Det verkar vara det. Men jag förstår inte riktigt hur jag ska skriva i server.xml för att implementera detta. Kan inte starta servern hur jag än försöker och jag hinner inte läsa felmeddelandet innan den automat-stänger kommandotolken.

Visa signatur

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Brian W. Kernighan

Permalänk
Medlem

Snabbhackat utifrån ditt exempel så får jag det till att bli ungefär så här.

<Host name="per1.hemligt.com" appBase="D:/www/app/site/hemsida1/"> <Context docBase="" path="" reloadable="true" useNaming="false"> <Loader className="org.apache.catalina.loader.VirtualWebappLoader" virtualClasspath="c:/gemensamkatalog/med/jarfiler" searchVirtualFirst="true" /> </Context> <Context docBase="../../" path="/system" reloadable="true"> <Loader className="org.apache.catalina.loader.VirtualWebappLoader" virtualClasspath="c:/gemensamkatalog/med/jarfiler" searchVirtualFirst="true" /> </Context> </Host>

Permalänk
Medlem

Jag har ingen erfarenhet av tomcat, mer än att jag har hört kompisar svära över jsp.

Hur kommer det sig att man inte kan göra en symboliska länk, app/site/hemsida*/Web-inf/lib till din önskade web-inf?

Skickades från m.sweclockers.com

Visa signatur

citera!

Permalänk
Medlem
Skrivet av Dosshell:

Hur kommer det sig att man inte kan göra en symboliska länk, app/site/hemsida*/Web-inf/lib till din önskade web-inf?

Skickades från m.sweclockers.com

Om man kör på ett operativsystem som har stöd för symboliska länkar så kan man givetvis använda det också. Det lilla argumentet som man kan ha emot den lösningen är att den ställer vissa krav på operativsystemet till skillnad från en lösning där man konfigurerar tomcat.

//C

Permalänk
Medlem

De enda mer använda filsystemen som saknar stöd för det, som jag kan komma på, är Ntfs i Windows Xp och tidigare.
Men du har rätt, bättre att lösa det med konfig så klart, om det är mer lättadministrerat. Undrade mest om det fungerade.

Skickades från m.sweclockers.com

Visa signatur

citera!