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

Développement Web en Java Discussion :

Erreur java.lang ClassNotFoundException


Sujet :

Développement Web en Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut Erreur java.lang ClassNotFoundException
    Bonsoir tout le monde,

    je fait appel à vous car me voilà face à une erreur que je n'arrive pas à résoudre.
    Après maintes recherches, je ne trouve que des pistes vers le classpath etc, mais je ne comprends pas pourquoi je devrais modifier quoi que ce soit dans le classpath, vu que mes autres projets sous eclipse fonctionnent.

    Voilà mon pb:
    J'ai créé un web dynamic project avec des servlets. Dans ma servlet Login, je fais appel à la méthode userExist() qui appartient à la classe UserInfo qui se trouve dans un autre projet java non dynamique cette fois et là bim erreur: java.lang.ClassNotFoundException. Pourtant, j'ai fais les import qu'il fallait et ajouté dans le build path du projet java dynamique le second projet java, celui qui contient la méthode userExist().
    De plus, quand je compile seulement le projet java tout court, et que j’exécute la méthode userExiste() dans le main du projet où il a été défini, ça fonctionne.


    Voilà un bout du code de la servlet Login, dans laquelle je fais appel à la methode userExist():

    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
     
    package com.servlets;
    import com.WSC.client.UserInfo;
     
    [...]
     
     
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
    			  throws ServletException, IOException {
     
    		String email = req.getParameter("email");
    		String password = req.getParameter("pass");
    		String userFirstname;
    		String userLastname;
    		String adminName;
     
    		System.out.println(email + " " + password);
     
     
    		UserInfo userInfo = new UserInfo();
     
    		String response = userInfo.userExist(email, password);
     
    		if(response.equals("ok"))
    		{
     
    			userInfo.userExist(email, password);
    			resp.sendRedirect(req.getContextPath()+ "/userAuth/userSpace");
     
    		}else{
     
    			RequestDispatcher rd = req.getRequestDispatcher("/login.jsp");
    			rd.forward(req, resp);
    		}

    Et voici la classe UserInfo qui se trouve dans un autre projet java:

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
     
    package com.WSC.client;
     
    import java.io.StringReader;
     
    import javax.json.Json;
    import javax.json.stream.JsonParser;
    import javax.ws.rs.core.MediaType;
     
    import com.sun.jersey.api.client.Client;
    import com.sun.jersey.api.client.ClientResponse;
    import com.sun.jersey.api.client.UniformInterfaceException;
    import com.sun.jersey.api.client.WebResource;
    import com.sun.jersey.api.client.config.ClientConfig;
    import com.sun.jersey.api.client.config.DefaultClientConfig;
     
    public class UserInfo {
     
    	public static final String BASE_URI = "http://localhost:8080/";
    	public static String resp;
     
    	public String userExist(String email, String pass){
     
     
    		ClientConfig config = new DefaultClientConfig();
    		Client client = Client.create(config);
    		WebResource resource = client.resource(BASE_URI);
     
    		WebResource nameResource = resource.path("api").path("user/" + email + "/" + pass);
     
    		try{
     
    					System.out.println("Client Response \n" + getClientResponse(nameResource) + "\n\n");
    					System.out.println("Response \n" + getResponse(nameResource) + "\n\n");
     
    					handleParsing(getResponse(nameResource));	
    					resp ="ok";
    					System.out.println(resp);
    				}
    				catch(UniformInterfaceException e){
     
    					resp = "not ok";
    					System.out.println(resp);
    				}		
    		return resp;	
    	}
     
    	private static String getClientResponse(WebResource resource) {
    		return resource.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class)
    		.toString();
    	}
     
    	private static String getResponse(WebResource resource) {		
    		return resource.accept(MediaType.APPLICATION_JSON).get(String.class);
     
    	}
     
    	private static void handleParsing(String json){
     
    		JsonParser jsonParser = Json.createParser(new StringReader(json));
    		while(jsonParser.hasNext()){
    			switch(jsonParser.next()){
     
    				case START_OBJECT:
    				System.out.println("Start_object");
    				break;
     
    				case END_OBJECT:
    				System.out.println("End_object");
    				break;
     
    				case START_ARRAY:
    				System.out.println("Start_array");
    				break;
     
    				case END_ARRAY:
    				System.out.println("End_array");
    				break;
     
    				case KEY_NAME:
    				System.out.println("Key_name " + jsonParser.getString());
    				break;
     
    				case VALUE_STRING:
    				System.out.println("Value_string " + jsonParser.getString());
    				break;
     
    				case VALUE_NUMBER:
    				System.out.println("Key_name " + jsonParser.getInt());
    				break;		
    			}	
    		}
    	}
    }


    Voilà, j'espère avoir été un peu claire, si quelqu'un pouvait m'aider ce serait super.
    Merci!!!!!!

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    as-tu essayé en mettant UserInfo.class dans WEB-INF/classes ?

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par plawyx Voir le message
    as-tu essayé en mettant UserInfo.class dans WEB-INF/classes ?


    Merci Plawyx pour ta réponse!!!
    Malheureusement, l'erreur persiste. J'ai crée le dossier classes dans Web-Inf auquel j'ai rajouté la classeur UserInfo, j'ai cliqué droit dessus et je l'ai rajouté au build-path, mais non ça ne change rien.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Comment déploies-tu ta webapp pour faire le test ?

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par plawyx Voir le message
    Comment déploies-tu ta webapp pour faire le test ?

    Je ne sais pas si ça répond à ta question.
    J'ai déclaré mes servlets dans le web.xml, puis j'ai executé le projet (sous eclipse).


    Voici le fichier web.xml:

    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
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>MyWebApp</display-name>
      <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
      </welcome-file-list>
       <listener>
        <listener-class>com.listener.PersistenceAppListener</listener-class>
      </listener>
      <servlet>
        <servlet-name>REST Service</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
          <param-name>com.sun.jersey.config.property.packages</param-name>
          <param-value>com.rest</param-value>
        </init-param>
      </servlet>
      <servlet-mapping>
        <servlet-name>REST Service</servlet-name>
        <url-pattern>/api/*</url-pattern>
      </servlet-mapping>
    </web-app>

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    en mettant le UserInfo.class dans WEB-INF/classes ça marche chez moi.

    La classe UserInfo.java appartient au package com.WSC.client, donc, mettre UserInfo.class dans WEB-INF/classes sous-entend dans WEB-INF/classes/com/WSC/client/UserInfo.class

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par plawyx Voir le message
    en mettant le UserInfo.class dans WEB-INF/classes ça marche chez moi.

    La classe UserInfo.java appartient au package com.WSC.client, donc, mettre UserInfo.class dans WEB-INF/classes sous-entend dans WEB-INF/classes/com/WSC/client/UserInfo.class

    J'ai peut être pas été claire dans mes explications.
    Le projet dans lequel se trouve le package com.WSC.client est un projet java non dynamique, je n'ai pas de web-inf dedans.
    Le premier projet intitulé MyWebApp lui est un projet java dynamique, et c'est en son sein que je fait appel à la classe UserInfo. Et donc, c'est quand je lance le projet MywebApp, j'obtiens ma page d'acceuil puis je rentre les données dans le formulaire, ce qu va faire appel à ma methode dopost que j'ai mis plus haut dans laquelle se trouve la methode userExist et c'est ce qui entraine une exception

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    tu souhaites coupler/échanger des données MyWebApp avec ton programme java non dynamique ou alors utiliser /récupérer des classes du statique dans le dynamique ?

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par plawyx Voir le message
    tu souhaites coupler/échanger des données MyWebApp avec ton programme java non dynamique ou alors utiliser /récupérer des classes du statique dans le dynamique ?
    J'aimerais coupler le projet non dynamique appelé MyClient (qui est mon client webservice) avec le projet MyWebApp.
    Dans la servlet Login de MyWebApp, je récupère des données (une adresse e-mail et un mot de passe) envoyées par un formulaire; ces données je les met en paramètre de la méthode userExiste qui est une méthode de la classe UserInfo qui se trouve dans le projet MyClient. UserInfo va à partir de ces paramètres voir si un utilisateur avec ce couple de données existe et me renvoie une réponse, soit "ok" et dans ce cas la méthode dopost de la servlet me redirige vers la page suivante, soit "not ok" auquel cas le dopost me redirige vers la page du login.

  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
    Citation Envoyé par Miimmmii Voir le message
    Dans ma servlet Login, je fais appel à la méthode userExist() qui appartient à la classe UserInfo qui se trouve dans un autre projet java non dynamique cette fois et là bim erreur: java.lang.ClassNotFoundException. Pourtant, j'ai fais les import qu'il fallait et ajouté dans le build path du projet java dynamique le second projet java, celui qui contient la méthode userExist().
    Tu peux nous montrer, screenshots à l'appui, comment tu as configuré ton projet WEB? Le deuxième projet est bien dans les exports de ton projet Web? Il apparait bien dans les librairies dans ton projets explorer? A quel niveau?

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Je clos le post, apparemment je fais fausse route.
    Je dois recommencer mon projet.

    Merci pour vos réponses.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/11/2012, 17h13
  2. Réponses: 1
    Dernier message: 06/02/2012, 10h15
  3. [Debutant] erreur Java.lang.ClassNotFoundException
    Par chlebta*tsotsi dans le forum JDBC
    Réponses: 3
    Dernier message: 20/05/2011, 07h26
  4. [Struts 1.3.8] Erreur java.lang.ClassNotFoundException
    Par DomIII dans le forum Struts 1
    Réponses: 17
    Dernier message: 10/05/2009, 18h51
  5. Réponses: 1
    Dernier message: 04/07/2008, 19h15

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