Toon posts:

[java]servlet root dir?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wie weet hoe je in een servlet de basis directory kan opvragen (dus bv $SERVER_HOME/webapps/myservlets). Dit met het oog op cachen en portability.

het staat overigens niet in de System properties, en is ook niet te verkrijgen door new java.io.File("."), en het kan zelfs niet via de ClassLoader. Maar hoe wel???

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik denk dat je in ServletContext moet wezen. Misschien dat je zelfs al een wat makkelijkere methode kan gebruiken zoals getRealPath.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Ja ik bedoel eigelijk domweg een klasse die zich in een servlet container bevind..

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
ServletContext is gewoon een onderdeel van de Servlet API, dus dat is dan toch prima?

http://jakarta.apache.org...doc/servletapi/index.html

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
ja dat weet ik, maar als ik een gewoon een aparte klasse maak, waaraan ik niet allemaal parameters wil doorgeven, hoe kna die dan zijn eigen locatie bepalen???

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Je vraagt eerst om de "base directory". Die kan je makkelijk vinden via de ServletContext. Ook kan je resources laden via deze context. Wat is dan het probleem?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
ja sorry, ik ben er vandaag niet helemaal bij, inderdaad een hele kromme vraagstelling. Ik wil echt per cl;ass kunnen opvragen binnen een servlet omgeving wat de base dir is...

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je van een klasse wilt weten waar deze precies staat zal je toch buiten de Servlet API moeten zijn omdat Servlets daar niet echt iets mee te maken hebben. ClassLoader.getResource lijkt mij dan aardig.

Gezien je andere vragen denk ik echter dat je alle klassen uit een bepaalde directory met een bepaalde naam wilt laden. Daarvoor lijkt het werken via de 'base dir', die je kan vinden via de ServletContect mij toch wel het handigst. Je spreekt dan gewoon een bepaalde plek af waar klassen of jars moeten staan en je kan deze dan gewoon laden. Ook kan je overwegen om hier gewoon een config file voor te gebruiken en alle klassen die daarin gespecificeerd zijn dan via Class.forName te laden.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1