[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:
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:
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:
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