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 :

Problème de bibliothèque dans une JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut Problème de bibliothèque dans une JSP
    Bonjour,

    Je travail actuellement sur un projet déployé sur un vieux serveur iplanet.
    Depuis une JSP, je n'arrive pas à importer autre chose que java.*

    J'ai essayé de trouvé un dossier WEB-INF qui pourrait contenir les lib mais sans succès.
    J'ai également essayé de configurer le classpath depuis "Server Manager" : sans succès.

    Merci par avance

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    et vous essayez d'ouvrir quoi d'autre? Si il n'y a pas de dossier WEB-INF, c'est vraisemblablement que le projet et composé uniquement de JSP, sans librairies ou classes supplémentaires.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    J'essaye d'importer une lib que j'ai crée.
    Le projet comporte des servlet et des bibliothèques mais celles-ci ne sont appelées que par des servlet et lorsqu'une vue doit utilisée une classe, l'ancien développeur avait utilisé un buffer pou écrire du html depuis une servlet...

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par bowwwod Voir le message
    J'essaye d'importer une lib que j'ai crée.
    Le projet comporte des servlet et des bibliothèques
    Ben alors doit ben y avoir un WEb-INF

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    Dans ce cas j'aimerai bien le trouvé mais impossible

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    recherchez dans le système tous les fichiers dont le contenu correspond au nom d'un des servlet? Ca devrais bien vous sortir quelque chose.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    J'ai avancé un petit peu : j'ai trouvé que toutes les lib que je pouvais appeler sont dans un même jar. j'ai donc essayé d'y ajouté ma lib.

    Je peut maintenant faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <% @page import = "maLib.*" %>
    mais si je fait le code ci-dessous il me plante encore.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <% @page import = "maLib.maClass" %>
    Logs d'erreur :

    [04/Mar/2011:13:58:29] info ( 196): JSP: JSP1x compiler threw exception
    org.apache.jasper.JasperException: Unable to compile class for JSPerror: File c:\jdk1_3\jre\lib\rt.jar(bs/bs/BSUtilisateur.class) does not contain type bs.bs.BSUtilisateur as expected, but type BSUtilisateur. Please remove the file, or make sure it appears in the correct subdirectory of the class path.
    d:\webserver\..\ClassCache\_jsps\_Applications\_GestionSortiesMateriel\_JSP\_Ajout_jsp.java:15: Class bs.bs.BSUtilisateur not found in import.
    import bs.bs.BSUtilisateur;
    ^
    2 errors

    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:284)
    at com.iplanet.server.http.servlet.NSServletEntity.load(NSServletEntity.java:252)
    at com.iplanet.server.http.servlet.NSServletEntity.update(NSServletEntity.java:173)
    at com.iplanet.server.http.servlet.NSServletRunner.Service(NSServletRunner.java:410)

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    c:\jdk1_3\jre\lib\rt.jar <- ne modifiez pas ce fichier, il fait partie de la jvm nondidjou!


    Pour ajouter votre propre classes, c'est soit dans WEB-INF/classes (si pas packagées) soit dans WEB-INF/xxxxx.jar (si packagées).

    de plus, l'emplacement du .class doit correspondre à la déclaration "package" qui se trouve dans le .java correspondant.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    Merci pour votre patience, j'ai l'habitude de travailler sur des projets vierges créés sur éclipse puis exportés correctement et j'avoue être un peu perdu sur ce projet déjà mis en place d'une façon qui ne me parle pas du tout.

    J'ai créer le dossier WEB-INF à la racine du projet car il n'existai pas.
    J'ai mi une classe non packagée que je souhaite importé dans ma JSP et j'ai mis dans ma JSP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="maClass" %>
    Et j'obtiens ces messages d'erreur :
    [04/Mar/2011:14:42:52] warning ( 196): Internal error: newInstance failed (servlet class=_jsps._Applications._GestionSortiesMateriel._JSP._Ajout_jsp): java.lang.IllegalAccessException: _jsps/_Applications/_GestionSortiesMateriel/_JSP/_Ajout_jsp
    [04/Mar/2011:14:42:52] warning ( 196): Internal error: Failed to get GenericServlet. (uri=/Applications/GestionSortiesMateriel/JSP/Ajout.jsp,SCRIPT_NAME=/Applications/GestionSortiesMateriel/JSP/Ajout.jsp)

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    vous le packagez comment votre war,pour commencer, le projet est compilé comment à la base? Vieux projet, du ant je suppose?

  11. #11
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    Effectivement c'est un vieux projet en java 1.3
    Toutes les servlets sont dans un dossier "servlet" et les jsp son réparties un peu partout.

    Mon poste ne compilant pas le java 1.3, je compile sur un autre poste (sous windows NT...) puis je remet le .class dans le dossier servlet sur le serveur (dans le dossier "servlet").

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par bowwwod Voir le message
    Mon poste ne compilant pas le java 1.3, je compile sur un autre poste (sous windows NT...) puis je remet le .class dans le dossier servlet sur le serveur (dans le dossier "servlet").
    javac -source 1.3 -target 1.3

    et ça marchera partout. Pas besoin de java 1.3 pour compiler du java 1.3

  13. #13
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    Merci pour l'info.

    En générale, savez-vous quelles sont les étapes à suivre pour créer un projet et importer une classe dans une JSP sans IDE?

    Merci par avance.

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    créer un projet dans ide -> dépend de ce que vous allez utiliser comem outils (maven, ant, ...?), suivre la doc spécifique à l'outil.

    importer dans jsp: directive import dans la jsp, tout simplement. Il faudra bien en tendu que la classe soit disponible dans la webapplication. C'est à dire, dans WEB-INF/lib/*.jar ou WEB-INF/classes/**/*.class ou encore fournie par le conteneur même dans le cadre de classes standards.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    Merci pour votre patience,

    J'ai mis le .class dans un dossier WEB-INF/classes/gestionMateriel en indiquant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    package gestionMateriel
    puis j'ai tester l'import dans ma jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="gestionMateriel.maClass" %>
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="monProjet.gestionMateriel.maClass" %>
    Mais malheureusement j'obtiens toujours le même résultat :

    [07/Mar/2011:11:44:48] info ( 744): JSP: JSP1x compiler threw exception
    org.apache.jasper.JasperException: Unable to compile class for JSPd:\webserver\https-serveur.entreprise\config\..\ClassCache\_jsps\_Applications\_GestionSortiesMateriel\_JSP\_Ajout_jsp.java:15: Class gestionMateriel.maClass not found in import.
    import gestionMateriel.maClass;
    ^
    1 error

    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:284)
    at com.iplanet.server.http.servlet.NSServletEntity.load(NSServletEntity.java:252)
    at com.iplanet.server.http.servlet.NSServletEntity.update(NSServletEntity.java:173)
    at com.iplanet.server.http.servlet.NSServletRunner.Service(NSServletRunner.java:410)

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    on peux avoir le code de la classe?

  17. #17
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    Oui bien sure mais pour l'instant elle n'est pas fournie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    package gestionMateriel;
     
    public class BSUtilisateur {
        String login;
        String nom;
        String prenom;
        boolean valideur;
     
     
        // GETTER
        public BSUtilisateur(String login) {
            setLogin(login);
        }
     
        public String getLogin() {
            return login;
        }
     
        public String getNom() {
            return nom;
        }
     
        public String getPrenom() {
            return prenom;
        }
     
        public boolean isValideur() {
            return valideur;
        }
     
        // SETTER
        public void setPrenom(String prenom) {
            this.prenom = prenom;
        }
     
        public void setLogin(String login) {
            this.login = login;
     
        }
        public void setNom(String nom) {
            this.nom = nom;
        }
     
        public void setValideur(boolean valideur) {
            this.valideur = valideur;
        }
    }

  18. #18
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    vous avez bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="gestionMateriel.BSUtilisateur" %>
    et un fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WEB-INF/classes/gestionMateriel/BSUtilisateur.class
    Pour rappel, les majuscules ont de l'importance et vous ne devez pas oublier de redémarrer votre web application après avoir mis à jour le .class

  19. #19
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    Oui c'est bien ce que j'ai je viens de revérifier.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Points : 11
    Points
    11
    Par défaut
    J'ai réussi a faire l'import sans qu'il ne me génère d'erreur mais lorsque j'utilise la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <% BSUtilisateur u = new BSUtilisateur("unLogin"); %>
    Il me met ce message :

    [07/Mar/2011:15:21:32] info ( 732): Internal Info: loading servlet /Applications/GestionSortiesMateriel/JSP/Ajout.jsp
    [07/Mar/2011:15:21:32] failure ( 732): Internal error: Unexpected error condition thrown (java.lang.NoClassDefFoundError: com/gestionmateriel/bs/BSUtilisateur (wrong name: BSUtilisateur),com/gestionmateriel/bs/BSUtilisateur (wrong name: BSUtilisateur)), stack: java.lang.NoClassDefFoundError: com/gestionmateriel/bs/BSUtilisateur (wrong name: BSUtilisateur)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
    at java.lang.ClassLoader.findSystemClass(ClassLoader.java:620)
    at com.iplanet.server.http.servlet.NSServletLoader.findClass(NSServletLoader.java:150)
    at com.iplanet.server.http.servlet.NSServletLoader.loadClass(NSServletLoader.java:106)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
    at java.lang.ClassLoader.resolveClass0(Native Method)
    at java.lang.ClassLoader.resolveClass(ClassLoader.java:588)
    at com.iplanet.server.http.servlet.NSServletLoader.loadClass(NSServletLoader.java:112)
    at com.iplanet.server.http.servlet.NSServletEntity.load(NSServletEntity.java:337)
    at com.iplanet.server.http.servlet.NSServletEntity.update(NSServletEntity.java:173)
    at com.iplanet.server.http.servlet.NSServletRunner.Service(NSServletRunner.java:410)

Discussions similaires

  1. Problème d'authentification dans une JSP
    Par sihamnet dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 08/05/2012, 01h13
  2. Problème d'affichage dans une JSP
    Par goomie dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 22/12/2011, 11h37
  3. Problème d'affichage dans une JSP
    Par bitter00 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/09/2011, 15h17
  4. Problème d'affichage dans une JSP
    Par DomIII dans le forum Struts 1
    Réponses: 2
    Dernier message: 03/10/2008, 10h09
  5. problème d'indexation dans une jsp
    Par reverse_engineer dans le forum Struts 1
    Réponses: 4
    Dernier message: 13/07/2008, 12h33

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