|
| Web applikation: Konfigurationsdata udenfo~ Fra : Thorbjørn Ravn Ander~ |
Dato : 13-12-06 14:33 |
|
Jeg har skrevet en java web applikation som er udviklet under Tomcat,
men som skal kunne køre generelt på fx Resin, WebSphere, Trifork og
you name it.
Der er et ønske om at der deployes en WAR-fil i hvis indhold der ikke
må ændres, samt at efter deployment skal det være muligt at justere
konfigurationsfiler til fx log4j og samtidig overholde ovenstående.
Det er ikke et problem at bundvende web containeren.
Til gengæld ønsker man at disse konfigurationsfiler skal være lokale
til den enkelte webapplikation.
Er der nogen der har et konstruktivt forslag til hvordan jeg kan gøre
disse ting tilgængelige på en nogenlunde fornuftig måde? Sætte noget
JNDI op til et hjørne af filsystemet og tilpasse fx log4j til at
snuppe en konfigurationsfil derfra?
Eller noget helt andet?
Gode forslag ønskes :)
På forhånd tak
--
Thorbjørn Ravn Andersen
| |
Michael Rasmussen (13-12-2006)
| Kommentar Fra : Michael Rasmussen |
Dato : 13-12-06 16:47 |
|
| |
Thorbjørn Ravn Ander~ (13-12-2006)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 13-12-06 16:51 |
|
Michael Rasmussen <mir@miras.org> writes:
> // konverter virtuel path til absolut path
> configFile = context.getRealPath("/WEB-INF/xml");
> configFile += '/' + DEFAULT_FILE;
Nej, desværre, for ovenstående går jo netop ned i webapplikationens
egne filer og det er dem der kommer fra den udpakkede WAR-fil, som jeg
ikke vil pille ved.
Derudover er det ikke alle applikationsservere der pakker filerne ud
Men tak for buddet :)
Er der virkelig ikke andre der har den slags problemer?
--
Thorbjørn Ravn Andersen
| |
Michael Rasmussen (13-12-2006)
| Kommentar Fra : Michael Rasmussen |
Dato : 13-12-06 17:57 |
|
| |
Arne Vajhøj (14-12-2006)
| Kommentar Fra : Arne Vajhøj |
Dato : 14-12-06 01:02 |
|
Thorbjørn Ravn Andersen wrote:
> Jeg har skrevet en java web applikation som er udviklet under Tomcat,
> men som skal kunne køre generelt på fx Resin, WebSphere, Trifork og
> you name it.
>
> Der er et ønske om at der deployes en WAR-fil i hvis indhold der ikke
> må ændres, samt at efter deployment skal det være muligt at justere
> konfigurationsfiler til fx log4j og samtidig overholde ovenstående.
> Det er ikke et problem at bundvende web containeren.
>
> Til gengæld ønsker man at disse konfigurationsfiler skal være lokale
> til den enkelte webapplikation.
>
> Er der nogen der har et konstruktivt forslag til hvordan jeg kan gøre
> disse ting tilgængelige på en nogenlunde fornuftig måde? Sætte noget
> JNDI op til et hjørne af filsystemet og tilpasse fx log4j til at
> snuppe en konfigurationsfil derfra?
>
> Eller noget helt andet?
>
> Gode forslag ønskes :)
Jeg tror bare at du må krybe til korset og lave et træ spejl.
Altså du har et root dir som identificeres f.eks. med en -D til
start af server eller en getenv hvis du er på 1.5 og så appender
du ellers web app navn til.
Så start server med -Dconfig.dir=C:/webconfig, og kod så
foobar web app vil lede efter C:/webconfig/foobar/log4j.properties
når den skal konfigurere log4j.
Ikke specielt kønt, men ...
Arne
| |
torben (14-12-2006)
| Kommentar Fra : torben |
Dato : 14-12-06 18:58 |
|
Thorbjørn Ravn Andersen wrote:
> Jeg har skrevet en java web applikation som er udviklet under Tomcat,
> men som skal kunne køre generelt på fx Resin, WebSphere, Trifork og
> you name it.
>
> Der er et ønske om at der deployes en WAR-fil i hvis indhold der ikke
> må ændres, samt at efter deployment skal det være muligt at justere
> konfigurationsfiler til fx log4j og samtidig overholde ovenstående.
> Det er ikke et problem at bundvende web containeren.
>
> Til gengæld ønsker man at disse konfigurationsfiler skal være lokale
> til den enkelte webapplikation.
>
> Er der nogen der har et konstruktivt forslag til hvordan jeg kan gøre
> disse ting tilgængelige på en nogenlunde fornuftig måde? Sætte noget
> JNDI op til et hjørne af filsystemet og tilpasse fx log4j til at
> snuppe en konfigurationsfil derfra?
>
> Eller noget helt andet?
>
> Gode forslag ønskes :)
>
> På forhånd tak
Interessant problemsstilling.
Hvis du har adgang til en database bagved burde det være muligt at
benytte den. Enten i form af en eller flere entities, der beskriver
konfigurationen pr. applikation. Eller også som en CLOB pr. applikation
pr. konfiguration system (hvor log4j her regnes for et konfiguration
system).
Torben
| |
Thorbjørn Ravn Ander~ (15-12-2006)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 15-12-06 00:49 |
|
torben <torben@frojonck.dk> writes:
> Hvis du har adgang til en database bagved burde det være muligt at
> benytte den. Enten i form af en eller flere entities, der beskriver
> konfigurationen pr. applikation. Eller også som en CLOB
> pr. applikation pr. konfiguration system (hvor log4j her regnes for et
> konfiguration system).
Næh, det har jeg heller ikke.
Det er dog en mulighed at koble Derby på, men det er da en anelse
overkill til et par filer.
--
Thorbjørn Ravn Andersen
| |
Henrik (21-12-2006)
| Kommentar Fra : Henrik |
Dato : 21-12-06 19:29 |
|
Thorbjørn Ravn Andersen skrev:
> Jeg har skrevet en java web applikation som er udviklet under Tomcat,
> men som skal kunne køre generelt på fx Resin, WebSphere, Trifork og
> you name it.
>
> Der er et ønske om at der deployes en WAR-fil i hvis indhold der ikke
> må ændres, samt at efter deployment skal det være muligt at justere
> konfigurationsfiler til fx log4j og samtidig overholde ovenstående.
> Det er ikke et problem at bundvende web containeren.
>
> Til gengæld ønsker man at disse konfigurationsfiler skal være lokale
> til den enkelte webapplikation.
>
> Er der nogen der har et konstruktivt forslag til hvordan jeg kan gøre
> disse ting tilgængelige på en nogenlunde fornuftig måde? Sætte noget
> JNDI op til et hjørne af filsystemet og tilpasse fx log4j til at
> snuppe en konfigurationsfil derfra?
>
> Eller noget helt andet?
>
> Gode forslag ønskes :)
Det nemmeste er nok at lave en mappe på serverem hvori du lægger alle
konfigurations filerne f.eks. properties filer. Mappen inkluderer du så
i serverens classpath, og webapp'en loader dem så ved hjælp at
getResourceAsStream eller ligende
En anden mulighed er at bruge JMX og Mbeans,Så kan du bruge standard
værktøjer som JConsole til at rette parametre
| |
Thorbjørn Ravn Ander~ (21-12-2006)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 21-12-06 21:09 |
|
Henrik <ingen@private.emails.dk> writes:
> En anden mulighed er at bruge JMX og Mbeans,Så kan du bruge standard
> værktøjer som JConsole til at rette parametre
Den her havde jeg ikke tænkt på! Den lyder god - jeg prøver... Takker!!
--
Thorbjørn Ravn Andersen
| |
|
|