Bonjour a tous,
Je debute dans l'utilisation de OJB, et j'ai un probleme lors de la creation d'un defalutPersistnentBroker. Voici l'erreur que j'ai :
[java] [org.apache.ojb.broker.core.PersistenceBrokerFactoryBaseImpl] ERROR: Creation of a new PB instance failed
[java] null
voici ma classe de test :
Ce qui me pose le plus probleme avec cette erreur, c'est que je ne sais pas vraiment d'ou elle peut provenir, donc je ne sais pas ou cherhcer. Si quelqu'un a une idee...
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134 package test; import plc.*; // pour les exceptions de apache //import org.apache.commons.exception.NestableRuntimeException; // pour l'utilisation de collection et d'iterator import java.util.*; // pour la persistence (broker) import org.apache.ojb.broker.*; import org.apache.ojb.broker.query.*; import java.sql.*; public class TestPLCDatabase { private static PersistenceBroker broker = null; public static void main(String[] args) { // 1) creer un objet et le rendre persistent Plc plc = new Plc(); // on renseigne qq attributs plc.setMacAddress("00:00:00:00:00:00"); plc.setIpAddress("137.138.49.233"); plc.setPort(80); // enregistrement ds la base storePLC(plc); //------------------------- // 2) mise a jour d'un objet existant updatePLC(plc); //------------------------- // 3) effectuer des requetes sur la base et exploiter le resultat try { broker = PersistenceBrokerFactory.defaultPersistenceBroker(); } catch(Throwable t) { t.printStackTrace(); } /* * Il faut debuter une transaction avant chaque acces a la base * en vue de respecter les conditions A.C.I.D d'une base */ try { broker.beginTransaction(); System.out.println("Transaction"); } catch(Exception e) { System.out.println("Impossible de commencer la transaction : "+e); } // creation de critere de requete Criteria crit = new Criteria(); // ???????????????? crit.addEqualTo("port", new Integer(80)); crit.addEqualTo("rack", new Integer(0)); crit.addEqualTo("initialValidity", "today"); // ???????????????? // creation de la requete Query q = new QueryByCriteria(Plc.class, crit); // execution de la requete try { Collection results = broker.getCollectionByQuery(q); Iterator iter = results.iterator(); while(iter.hasNext()) { Plc tmp = (Plc)iter.next(); System.out.println("Ip : "+tmp.getIpAddress()); System.out.println("port : "+tmp.getPort()); System.out.println("rack : "+tmp.getRack()); } } catch(Exception e) { System.out.println("Exception 2 : "+e); } finally { if(broker != null) broker.close(); } // commit de la transaction pour liberer la base broker.commitTransaction(); } public static void storePLC(Plc toStore) { PersistenceBroker broker = null; try { System.out.println("coucou1"); broker = PersistenceBrokerFactory.defaultPersistenceBroker(); System.out.println("coucou2"); broker.beginTransaction(); broker.store(toStore); broker.commitTransaction(); } catch(PersistenceBrokerException e) { if(broker != null) broker.abortTransaction(); System.out.println("Exception : " + e); } finally { if(broker != null) broker.close(); } } public static void updatePLC(Plc toUpdate) { PersistenceBroker broker = null; try { broker = PersistenceBrokerFactory.defaultPersistenceBroker(); QueryByCriteria query = new QueryByCriteria(toUpdate); Plc result = (Plc)broker.getObjectByQuery(query); if(result != null) { broker.beginTransaction(); result.setRack(0); result.setSlot(2); broker.store(result); broker.commitTransaction(); } } catch(PersistenceBrokerException e) { if(broker != null) broker.abortTransaction(); System.out.println("Exception : " + e); } finally { if(broker != null) broker.close(); } } }
Partager