Voici la situation:
J'ai un serveur d'application (borland) qui fait tourner deux EJB session.
- Le premier EJB session est un bean qui doit effectuer des opérations sur une base de données de façon générique (doit fonctionner avec n'importe quel SGBD).
- Le deuxième encapsule le driver JDBC permettant d'accèder à la base et doit gérer les connexions avec elle.
Voici le problème:
Le premier bean demande au second une connexion avec la base via une méthode getConnection()
Code :
- //Dans le bean driver
- public Connection getConnection() throws RemoteException
- {
- Connection conn;
- ...
- Class.forName("org.gjt.mm.mysql.Driver" ).newInstance();
- ...
- conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=***&password=****" );
- System.out.println("Connection OK " );
- return conn;
- }
|
La connexion se fait bien avec le bean driver mais c'est au moment du passage de la connexion entre les deux beans que j'ai un CastException
Code :
- //Dans le bean générique
- {
- ...
- DriverHome home=(DriverHome) PortableRemoteObject.narrow(ref, DriverHome.class);
- DriverRemote dr=home.create();
- conn=dr.getConnection(); //CastException
- ...
- }
|
Quel est le problème ?