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

Servlets/JSP Java Discussion :

JSP et jar externe


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Par défaut JSP et jar externe
    Bonjour

    J'essaie la manipulation suivante

    Dans un projet JEE, avec seulement :
    <> Un jsp: F:\java\app_helios\Test_jsp_3\WebContent\index.jsp
    <> Un fichier propertie : F:\java\app_helios\Test_jsp_3\WebContent\WEB-INF\application.properties

    j'ai integrer un jar : click sur projet/java Built Path/Add extrenal jar/lejar.jar
    (F:\java\app_helios\fil_properties.jar)

    Code dans le jsp :
    <%@ page import="io.*" %>
    ..........
    ..........
    <%
    FileHandler fh = new FileHandler("WEB-INF/application.properties");
    //String database_driver = fh.lecture("database_driver");
    %>
    ..........
    ..........

    j'ai l'erreur suivante :
    An error occurred at line: 13 in the jsp file: /index.jsp
    FileHandler cannot be resolved to a type
    10: </head>
    11:
    12: <%
    13: FileHandler fh = new FileHandler("WEB-INF/application.properties");
    14: //String database_driver = fh.lecture("database_driver");
    15: %>
    16:


    Une idee ?
    merci par avance

  2. #2
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    et si tu ajoutais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="to.nom.de.package.FileHandler" %>
    en entête de ta page ? (A moins que FileHandler soit déjà dans le package io)

    PS: le nom du package est a changer bien sur

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Par défaut JSP
    Bonjour et merci pour ta reponse
    en effet FileHandler soit déjà dans le package io
    je voulais faire une copie ecran de la zone du projet mais .... alors je me rabat sur ce qui dessous
    =======================
    nom du projet fil_propertie
    ---scr:io
    -------FileHandler
    ---JRE System Library
    =======================
    et pour le nom, tu as raison, je dois le changer.....ca porte a confusion...
    fil

  4. #4
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Par défaut JSP et classe externe
    J'ai changé le nom:

    pour plus de claireté ci dessous le code de mon jsp de test, puis celui de ma classe externe:

    ====================================================
    <%@ page import="getsetproperties.ChargeFichier" %>

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Test Jsp 3</title>
    </head>

    <%
    ChargeFichier fh = new ChargeFichier("WEB-INF/application.properties");
    //String database_driver = fh.lecture("database_driver");
    %>

    <body>

    <center>Test Jsp 3</center>
    <hr/>

    </body>
    </html>
    ================================================
    package getsetproperties;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.Properties;

    import org.apache.log4j.BasicConfigurator;
    import org.apache.log4j.Level;
    import org.apache.log4j.Logger;

    public class ChargeFichier {

    Logger logger;
    String parametres;
    public Properties prop = new Properties();

    public ChargeFichier(String p_fichier)
    {
    BasicConfigurator.configure();
    logger = Logger.getLogger(ChargeFichier.class);
    logger.setLevel(Level.TRACE);

    logger.trace("Ouverture du fichier des proprietes...:"+p_fichier+"");
    try {
    InputStream in = new FileInputStream(new File(p_fichier));
    prop.load(in);
    in.close();
    } catch(Exception ioexp) {
    logger.trace("Erreur:"+ioexp);
    }
    }

    public String lecture(String parametres)
    {
    logger.trace("Extraction des proprietes......");
    String valeur = prop.getProperty(parametres);
    logger.trace(parametres +" : " + valeur);
    return valeur;
    }

    }

  5. #5
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    Dans ce cas, je pense que ta classe est mal déployé sur dans ta web-app.
    Dans quel répertoire se trouve ta classe compilé ?

    PS: merci de bien vouloire utiliser les balise [CODE] pour formater ton texte.

  6. #6
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Par défaut JSP et classe externe
    la classe compilée est physiquement sur F:\java\app_helios\fil_properties.jar
    le contenu de son Manifest : META-INF/Manifest-Version: 1.0

    Je suis à coté c'est sur, mais j'essai quand meme
    que veux tu dire par : Dans quel répertoire se trouve ta classe compilé ?
    la classe compilée est un objet externe, bien que celle-ci soit declarée dans les proprietes du
    projet jsp par l'action :
    click sur projet/java Built Path/Add external jar/lejar.jar

  7. #7
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Par défaut JSP et classe externe
    Je ne trouve pas de reference dans le projet de ma web-app
    je pense que j'ai pas trop compris
    je pensait que seul la déclaration comme écris dans mon précédent post
    click sur projet/java Built Path/Add external jar/lejar.jar
    suffirait, et apres faire appel dasn mon jsp
    Mais apparement il faut mettre la classe externe quelque part dans un dossier du projet du type /WEB-INF/classe.... ais je bon ?
    mais ca , etant new in java, je sais pas faire
    aie........

  8. #8
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    Il ne faut pas confondre ton projet que tu peux modifier dans Eclipse (d'après ce que tu ecris j'ai supposé que tu utilisais Eclipse) et ta web-app qui doit être déployé sur un serveur d'application.
    Après si tu utilise Eclipse pour déployer ton application (et démarrer le serveur), il te suffit normalement que ton projet soit correctement configuré (mais la je ne préfère pas me risquer a te dire comment configurer le projet).

    Mais apparement il faut mettre la classe externe quelque part dans un dossier du projet du type /WEB-INF/classe.... ais je bon ?
    En effet.
    L'ensemble des classes nécessaire à ta JSP doivent se trouver (généralement) soit dans le répertoire "WEB-INF/classes", soit dans un jar qui se trouvera dans "WEB-INF/lib"

  9. #9
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Par défaut JSP et classe externe
    Super merci......
    j'ai copier la classe fil_propertie dans
    F:\java\app_helios\Test_jsp_3\WebContent\WEB-INF\lib
    J'ai plus d'erreur sauf qu'il ne trouve pas le fichier application.properties.....qui est dans F:\java\app_helios\Test_jsp_3\WebContent\WEB-INF
    il me retourne null......
    je vais vois comment faire...
    Encore Merci

    oui j'utilise Eclipse...
    J'essai de mettre le fil en resolu aussi

    Bon We

  10. #10
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    Citation Envoyé par lamur Voir le message
    il ne trouve pas le fichier application.properties.....qui est dans F:\java\app_helios\Test_jsp_3\WebContent\WEB-INF
    C'est parce que tu ne le récupére pas correctement la ressource.

    Dans une application web, il faut toujours récupérer une ressource depuis un contexte. Si tu récupère comme tu l'as fait (en utilisant un FileInputStream), les fichiers seront relatif à la racine du serveur d'application et pas relatif à ta web app. Dans ton cas new File("toto") te donnera F:\java\app_helios\toto (ou quelques chose d'approchante). Cette facon de faire n'est donc pas vraiment recommendé puisque tu ne maitrise pas bien l'accès aux ressources.

    Comme je l'ai dit pour accéder à une ressource, il faut utiliser un contexte.
    Par exemple dans une Servlet ca donnera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getServletContext().getResourceAsStream("/WEB-INF/application.properties")
    Dans ton cas, le code n'est pas appelé a partir d'une servlet mais a partir d'une JSP, le code sera donc certainement légèrement différent.

    Je te conseil d'ouvrir un nouveau post pour ce nouveau problème

  11. #11
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 39
    Par défaut JSP et class externe
    Ok
    je me rappelle avoir vu ca sur la toile.....
    j'essai de le retrouver.....
    Encore merci pour ces precieuses indications

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/10/2012, 11h43
  2. [Débutant] Ajout JAR externe : pb exécution
    Par arthix dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 15/01/2007, 22h35
  3. Problemes avec JAR externes
    Par AnonCoder dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 13/09/2006, 13h36
  4. [JAR] Exporation jar + jar externes
    Par Baptiste Wicht dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 15/03/2006, 12h17
  5. [JAR]Pb utilisation de Jar externes
    Par El_touristo dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 23/02/2005, 21h22

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