Yakurena1 | Bonjour,
J'essaie actuellement de tester une application basée sur les EJB : en fait, un des exemples integrés au logiciel Jonas. J'ai donc d'abord installé Jonas (ainsi que le JDK et Ant), configuré mes variables d'environnement (CLASSPATH, ...), puis essayé d'executer les exemples d'application stockés dans Jonas. Le Session Bean (ClientOp) marche bien, mais l'EntityBean (ClientAccount) pose un problème, au niveau de la relation avec la base de données. La connexion est bien établie (j'ai bien mis dans mon CLASSPATH un .jar contenant le driver), c'est au niveau de la manipulation des données que le problème se pose.
Voici la partie du code à executer qui pose problème :
Code :
- // Create a first Account
- System.out.println("Creating a new Account in database" );
- System.out.println("7" );
- Account a1 = null;
- try {
- a1 = home.create(109, "John Smith", 0);
- } catch (Exception e) {
- System.out.println("Ici" );
- System.err.println("Cannot create Account: " + e);
- System.exit(2);
- }
|
Et l'erreur engendrée :
Code :
- Creating a new Account in database
- Cannot create Account: javax.ejb.CreateException: java.sql.SQLException: ORA-000
- 01: violation de contrainte unique (SYSTEM.SYS_C003021)
|
Alors que, pourtant, la table ne contient pas de t-uples ayant déjà l'identifiant 109. (J'ai regardé son état avant l'execution du bean, et l'erreur se produit même si la table est vide).
Le fichier de remplissage de la table :
Code :
- drop table accountsample_;
- create table accountsample_ (
- accno_ integer primary key,
- customer_ varchar(30),
- balance_ number(15, 4)
- );
- insert into accountsample_ values(101, 'Antoine de St Exupery', 200.00);
- insert into accountsample_ values(102, 'alexandre dumas fils', 400.00);
- insert into accountsample_ values(103, 'conan doyle', 500.00);
- insert into accountsample_ values(104, 'alfred de musset', 100.00);
- insert into accountsample_ values(105, 'phileas lebegue', 350.00);
- insert into accountsample_ values(106, 'alphonse de lamartine', 650.00);
|
Quelqu'un aurait-il la solution à ce problème ?
Merci d'avance. |