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

JDBC Java Discussion :

[OJB] Persistent Broker


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 170
    Par défaut [OJB] Persistent Broker
    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 :
    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();
    	}
        }
    }
    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...

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 170
    Par défaut
    Je ne sais pas pourquoi exactement ca ne marchait pas, mais ce probleme apparaissait lorsque j'executais directement mon programme a partir de ant.
    En l'executant avec java, plus de pb.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OJB] Persistance de données avec OJB
    Par hicham246 dans le forum Persistance des données
    Réponses: 0
    Dernier message: 13/08/2008, 11h25
  2. Processus persistant
    Par LeChip dans le forum Linux
    Réponses: 6
    Dernier message: 18/05/2004, 17h13
  3. [PaintBox] Persistance du dessin non créé dans onPaint
    Par princesse dans le forum C++Builder
    Réponses: 10
    Dernier message: 21/04/2004, 17h47
  4. [JDO]différence entre OJB et JDO
    Par Fëanor13 dans le forum Persistance des données
    Réponses: 3
    Dernier message: 06/10/2003, 10h09
  5. [Persistence][Framework]Avis.
    Par quilo dans le forum Persistance des données
    Réponses: 5
    Dernier message: 10/09/2003, 14h55

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