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 :

[Servlet][EJB Session]Linkage Error probleme


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 28
    Points
    28
    Par défaut [Servlet][EJB Session]Linkage Error probleme
    Bonjour,
    je fais appel a un EJB Session depuis une servlet. tout se passe bien, la communication se fait bien mais lorsque a la fin de cette methode je retourne un objet vers ma servlet, la servlet recupere cet objet et lance une cette exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    15:38:14,570 ERROR [[MaterielDA]] Servlet.service() for servlet MaterielDA threw exception
    java.lang.LinkageError: Class com/hippocad/proxad/data/beans/SchemaTherapeutiqueListTO violates loader constraints
    Voici la methode de mon EJB Session appelée:

    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
    	/**
    	 * Business method
    	 * @ejb.interface-method  view-type = "both"
    	 */
    	public SchemaTherapeutiqueListTO getSchemaTherapeutiqueListTO() {
     
    		// TODO :: FAIRE REQUETE QUI RECUPERE ID DE TOUS LES ST
    		// 		   POUR CHAQUE ID, RECUPERE LES COMPOSÉS
    		SchemaTherapeutiqueListTO listST = new SchemaTherapeutiqueListTO();
     
    		String sqlQry = "SELECT DISTINCT(id_categorie_pere) FROM `categorie_composition` WHERE status=0";
    		System.out
    			.println("SchemaTherapeutiqueDABean.getListSchemaTherapeutiqueTO() sqlQry : "
    				+ sqlQry);
    		/*MySqlCnxParameters prmHippoCad = new MySqlCnxParameters(
    			DAServletProperties.getString("DAServletPrm.dbHost"), DAServletProperties.getString("DAServletPrm.dbName"), DAServletProperties.getString("DAServletPrm.dbUser"), DAServletProperties.getString("DAServletPrm.dbPwd")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$*/
    		MySqlCnxParameters prmHippoCad = new MySqlCnxParameters(
    				"localhost", "materiel", "root", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
     
    		MysqlManager cnxMAnager = new MysqlManager(prmHippoCad);
     
    		ResultSet rs;
     
    		try {
    			cnxMAnager.connect();
    			rs = cnxMAnager.getDefaultStatement().executeQuery(sqlQry);
     
    			while (rs.next()) {
    				long idSchemaTherapeutique = rs.getLong("id_categorie_pere");
    				listST.addSchemaTherapeutique(this.getSchemaTherapeutiqueTO(idSchemaTherapeutique));
    			}
    		} catch (SQLException e) {
    			System.out
    				.println("SchemaTherapeutiqueDABean.getListSchemaTherapeutiqueTO() EXCEPTION !!!");
    			e.printStackTrace();
    		}
     
    		System.out.println("getListSchemaTherapeutique "+ listST.getListSchemaTherapeutique().size());
    		return listST;
    	}
    Et la servlet qui recupere l'objet :

    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
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException,
    		IOException {
    		try {
    			long idSchemaTherapeutique;
     
    			TypeReq pTypeReq;
    			System.out.println("SchemaTherapeutiqueDAServlet.doPost()");
     
    			InputStream reqIn = req.getInputStream();
     
    		    // Create XML decoder.
    	        final XMLDecoder xdec = new XMLDecoder(reqIn);
     
    	        final Object obj = xdec.readObject();	
    			try
    			{			    
    			    pTypeReq = (TypeReq)Enum.valueOf(TypeReq.class,(String)obj);
    			    final Object obj2;
    			    OutputStream respOs = resp.getOutputStream();	;				  
     
    				SchemaTherapeutiqueDALocal stDALocal= SchemaTherapeutiqueDAUtil.getLocalHome().create();			    
     
    			    switch (pTypeReq) {
    				    case GET_SCHEMA_THERAPEUTIQUE:
    				    	obj2 = xdec.readObject();
    				    	idSchemaTherapeutique = (Long)obj2;
    					    reqIn.close();
     
    						SchemaTherapeutiqueTO ST = stDALocal.getSchemaTherapeutiqueTO(idSchemaTherapeutique);													
    						ST.transfertObject(respOs);
    				    	break;				    	
    			    	case GET_LIST_SCHEMA_THERAPEUTIQUE:
    					    reqIn.close();
     
    						SchemaTherapeutiqueListTO listST = stDALocal.getSchemaTherapeutiqueListTO();								
     
    						System.out.println("test");
    						System.out.println(listST.getListSchemaTherapeutique().size());
     
    						listST.transfertObject(respOs);								    		
    			    }
     
    				respOs.flush();
    				respOs.close();
    			} catch (RemoteException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (NamingException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (CreateException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch(Exception theException) {
    				System.out.println("EXCEPTION"+theException);
    			}
    		} catch (RuntimeException e) {
    			System.out.println("IntervenantListTO.load()");
    			e.printStackTrace();			
    		}finally {
     
            }										
    	}
    Quelqu'un sait pourquoi j'ai cette exception de levée? J'ai trouvé sur le net, que c'etait parce que ma classe etait deux fois dans mon class-path, mais je ne vois pas ou.

    Sinon, j'ai un autre probleme lors de la communication entre deux beans sessions, quel méthode est la plus simple?

    Merci

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Personne n'a une idée???

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bon ben j'ai résolu l'erreur de Linkage, c'etait bien que ma classe apparaissait deux fois dans le classpath. J'ai changé ma méthode pour fabriquer mon EAR.

    Personne n'a une idée pour faire communiquer 2 EJB Session facilement. Car lorsque j'en appelle depuis la servlet aucun probleme mais lorsque je veux en appeler depuis un EJB, j'ai une exception qui se lance : Il n'arrive pas a trouver l'EJB avec le JNDI pourtant cet EJB est bien déclaré

Discussions similaires

  1. [EJB Session] class not found exception ?
    Par champion dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 11/02/2005, 23h46
  2. [Débutant] [lomboz] EJB Session
    Par VinceFromBcn dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 19/01/2005, 19h51
  3. [servlet][jsp] session et request
    Par Stessy dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 07/01/2005, 11h38
  4. linkage error
    Par Fry dans le forum C++
    Réponses: 8
    Dernier message: 04/09/2004, 19h39
  5. [Servlet][EJB]lire un fichier à partir de mon bean
    Par kimausoleil dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/02/2004, 14h26

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