[BEA/Weblogic/JAVA servlet] problemgetServletConfig().getServletContex

problemgetServletConfig().getServletContex [BEA/Weblogic/JAVA servlet] - Java - Programmation

Marsh Posté le 07-03-2005 à 16:27:14    

J'ai une appli developpé sous apache tomcat sous windows avec eclipse. Je la passe en weblogic sous linux et ca se passe pas tres bien. Un de mes problemes est le fait que getServletConfig().getServletContext().getRealPath("/WEB-INF" )
passe tres bien sous tomcat
mais sous bea linux ca renvoit toujours null
le pire etant que bea se dit conforme aux apis sun mais sur son site dit que ça renvoit tout le temps null. Ce qui est le cas en pratique (apres recherche sur le net j'ai vu que sous bea win ca marche mais que le souci vient surement de l'implementation linux de bea)
 
Comment faire donc un deploiement propre et lire des ressources (fichiers de confs de mon appli dont le chemin est lu dans le web.xml) ?
 
(je suis en bea weblogic 8.1 sur une redhat fedora avec jdk 1.4.2 je sais plus quoi)
 
Car pour l'instant j'ai pas de solution propre hormis mettre dans un coin du web.xml le chemin complet de deploiement de la webapp ce qui est plutot naze et pas pratique donc surement source d'erreur au deploiement . file:/monfichierdeconfig.xml par exemple


Message édité par cooltwan le 07-03-2005 à 16:28:19
Reply

Marsh Posté le 07-03-2005 à 16:27:14   

Reply

Marsh Posté le 07-03-2005 à 16:53:15    

autre personne avec le meme souci
 
http://groups-beta.google.com/grou [...] a85f18cc95

Reply

Marsh Posté le 07-03-2005 à 20:52:19    

Ce qui est bizzare c'est que pour moi la méthode getRealPath de ServletContext prend en parametre un chemin te ton environnement web virtuel. Le rep WEB-INF n'est pas un répertoire virtuel web de ton appli donc je trouve logique que sous weblo cela ne fonctionne pas. C'est plutot ta conf Tomcat qui est permissive.

Reply

Marsh Posté le 07-03-2005 à 23:07:46    

Concernant getRealPath le comportement de weblogic est normal cf. javadoc J2EE 1.3 :
 
This method returns null if the servlet container cannot translate the virtual path to a real path for any reason (such as when the content is being made available from a .war archive).
 
Ce qui semble normal en production on déploie sous forme de war ou d'ear et le serveur extrait les fichiers dans des répertoires de travail. C'est un peu le danger de développer des applications web en mode 'explode', on croit qu'on peut accéder aux fichiers contenus dans la web-app comme n'importe quel fichier du file-system.
 
Il faut utiliser les méthodes getResource ou getResourceAsStream qui renvoient respectivement une URL ou une InputStream pour faire ce que tu veux.

Reply

Marsh Posté le 09-03-2005 à 11:34:20    

:jap: à tous
c'est un peu galere ce type de pepins

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed