IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Portails Java Discussion :

Récuperation du PortletContext dans une classe "utilitaire" [Portlet]


Sujet :

Portails Java

  1. #1
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut Récuperation du PortletContext dans une classe "utilitaire"
    Bonjour.

    J'ai développé une Application Portlet contenant plusieurs Portlets ainsi que des classes "utilitaires" pouvant être utilisées par chacun de ces Portlets.

    Le problème, dans ces classes utilitaires, est l'accès aux fichiers contenus dans mon Application Portlet (pour effectuer du parsing de fichiers xml en l'occurrence).
    En effet ces classes n'ont pas accès au PortletContext qui pourrait me permettre d'obtenir le realPath (via getRealPath() ) indispensable pour l'accès aux fichiers.

    Il y a bien sûr la solution de faire en sorte qu'un de mes Portlets lui transmette son PortletContext mais cela sous-entend qu'il y ait un "premier" Portlet obligatoirement exécuté avant n'importe quel autre, ce qui n'est amha pas très propre.

    Voilà j'espère avoir été clair dans ma problématique et vous remercie d'avance de votre aide !

  2. #2
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    Bon voilà ce que j'ai trouvé :

    En l'occurrence, comme je suis sous Liferay, je peux utiliser pour récupérer un bean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PortalBeanLocatorUtil.getBeanLocator().locate($nomDeFichier)
    ou alors plus généralement passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    URL uneUrl = _une_instance.getClass().getClassLoader().getResource($nomDeFichier);
    File rep = new File(uneUrl.getFile().replaceAll("%20", " "));
    Qui recherche à partir du répertoire WEB-INF/classe et qui implique de penser à convertir le caractère "%20" en espace pour récupérer le File.

  3. #3
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    Voici au final la solution que j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(MON_FICHIER);
    * avec "MON_FICHIER" le chemin relatif de mon fichier dans le répertoire de ressources.

    Note: Dans ma réponse précédente je récupérait un objet File ce qui n'est pas possible si mon fichier est contenu dans un jar, d'où l'utilisation directe d'un objet InputStream.

    Ensuite il suffit de faire ainsi pour parcourir le contenu de cet InputStream :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Reader fileReader = new InputStreamReader(is);
    BufferedReader buffReader = new BufferedReader(fileReader);
    while (buffReader != null) {
         try {
                   String tempLine;
                   tempLine = buffReader.readLine();
         } catch (IOException e) {

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récuperation variable globale d'une class dans un autre
    Par FATENMRABET dans le forum Débuter avec Java
    Réponses: 31
    Dernier message: 26/09/2013, 16h07
  2. CComboBox dans une classe utilitaire
    Par BakaOnigiri dans le forum MFC
    Réponses: 3
    Dernier message: 29/12/2006, 18h55
  3. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo