Foros de discusión

importation d'un fichier dans une classe java

Jérémy Quentel, modificado hace 12 años.

importation d'un fichier dans une classe java

New Member Mensajes: 6 Fecha de incorporación: 4/08/11 Mensajes recientes
Bonjour à tous,

Dans le cadre du développement d'un portail Liferay, j'ai besoin d'importer un fichier Excel pour y insérer des données et le mettre à disposition de l'utilisateur.
Mon souci arrive dès l'import :
 public void generateXLS(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
    try {
        // Ouverture du fichier xls
      FileInputStream fs = new FileInputStream("/modeleLigneCommande.xls");.
[...]
} catch (FileNotFoundException fnf) {
      actionResponse.setRenderParameter("url",
          "ERREUR :  fnf");
    }


J'ai testé énormément de possibilités, mais je ne vois pas comment récupérer un fichier.
Actuellement, le fichier .xls est situé à la racine de mon projet.

Si quelqu'un a des idées, je suis preneur !
Merci d'avance !!!
thumbnail
Leo Pratlong, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

Expert Mensajes: 363 Fecha de incorporación: 6/07/10 Mensajes recientes
Bonjour,

quelle est l'erreur qui survient ?

Essayez de charger le fichier en définissant le path du fichier avec la commande suivante :
portletConfig.getPortletContext().getRealPath("lefichier.xls");


Si ça ne fonctionne pas, regardez la valeur que cette instruction renvoie et adaptez le paramètre en fonction.
Jérémy Quentel, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

New Member Mensajes: 6 Fecha de incorporación: 4/08/11 Mensajes recientes
qu'est-ce que portletConfig ?
thumbnail
Leo Pratlong, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

Expert Mensajes: 363 Fecha de incorporación: 6/07/10 Mensajes recientes
Jérémy Quentel:
qu'est-ce que portletConfig ?


Une interface contenant des méthodes relatives au contexte du portlet.
Vous développez un portlet, un plugin Ext, autre ?
Si c'est un portlet, avec quel framework ? Un portlet généré avec le SDK de Liferay ou un portlet "handcrafted" ?

Le PortletContext peut se récupérer autrement. Par exemple, en JSF, ce sera :
final FacesContext context = FacesContext.getCurrentInstance();
(PortletContext) context.getExternalContext().getContext();


Donc, tout dépend des technos que vous utilisez dans vos devs.
Jérémy Quentel, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

New Member Mensajes: 6 Fecha de incorporación: 4/08/11 Mensajes recientes
Je développe un portlet avec le SDK Liferay.

Pourquoi est-ce que la ligne suivante ne fonctionne pas ?? sachant que si j'affiche actionRequest.getContextPath() + "fichier.xls" ça me donne bien le chemin vers mon fichier.xls.
 FileInputStream fs = new FileInputStream(actionRequest.getContextPath() + "fichier.xls");


Il y a des choses qui m'échappent...
thumbnail
Leo Pratlong, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

Expert Mensajes: 363 Fecha de incorporación: 6/07/10 Mensajes recientes
Le chemin relatif ou absolu ? Le getRealPath renvoie le chemin absolu sur le serveur. En ce sens, il est plus facile à utiliser.
Vous avez quoi comme variable en entrée de votre méthode d'action (processAction, execute, ... ?).
Ne faut-il pas un "/" juste avant "fichier.xls" ?
Jérémy Quentel, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

New Member Mensajes: 6 Fecha de incorporación: 4/08/11 Mensajes recientes
j'avais essayé avec le "/", même échec...

voici les deux paramètres de ma méthode.
ActionRequest actionRequest
ActionResponse actionResponse
Jérémy Quentel, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

New Member Mensajes: 6 Fecha de incorporación: 4/08/11 Mensajes recientes
Et pour ce qui est du chemin relatif ou absolu... pour l'instant j'aimerais trouver une technique qui fonctionne, que ce soit relatif ou absolu... =)
thumbnail
Leo Pratlong, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

Expert Mensajes: 363 Fecha de incorporación: 6/07/10 Mensajes recientes
Pour la récup du path du fichier, ça m'a l'air bon.

Si le chemin est bon, il s'agit peut-être d'un problème de droits du fichier.
Il faut que l'utilisateur qui lance le serveur ait les droits d'accès à ce fichier.

Edit :
our l'instant j'aimerais trouver une technique qui fonctionne, que ce soit relatif ou absolu... =)


Oui oui, j'ai bien compris. Mais je demandais si le chemin que renvoyait actionRequest.getContextPath() était relatif ou absolu ;).
Jérémy Quentel, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

New Member Mensajes: 6 Fecha de incorporación: 4/08/11 Mensajes recientes
le chemin renvoyé est absolu : du style
 /nom_du_portlet
thumbnail
David H Nebinger, modificado hace 12 años.

RE: importation d'un fichier dans une classe java

Liferay Legend Mensajes: 14916 Fecha de incorporación: 2/09/06 Mensajes recientes
Jérémy Quentel:
Bonjour à tous,

Dans le cadre du développement d'un portail Liferay, j'ai besoin d'importer un fichier Excel pour y insérer des données et le mettre à disposition de l'utilisateur.
Mon souci arrive dès l'import :
 public void generateXLS(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
    try {
        // Ouverture du fichier xls
      FileInputStream fs = new FileInputStream("/modeleLigneCommande.xls");.
[...]
} catch (FileNotFoundException fnf) {
      actionResponse.setRenderParameter("url",
          "ERREUR :  fnf");
    }


J'ai testé énormément de possibilités, mais je ne vois pas comment récupérer un fichier.
Actuellement, le fichier .xls est situé à la racine de mon projet.

Si quelqu'un a des idées, je suis preneur !
Merci d'avance !!!


FileInputStream doesn't know anything about your current context.

You should be looking into the getResourceAsStream() method that knows how to return an input stream on the given named resource.