tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
1689
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    darksmilie darksmilie ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Paderborn
    Beiträge
    243
    Hi

    Weiß einer was ich alles umstellen muss wenn ich meine connection von Hibernate auf JNDI wechseln will oder hat jemand ein link von einer doku die das Erläutert.
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!


    Weiß einer was ich alles umstellen muss wenn ich meine connection von Hibernate auf JNDI wechseln will oder hat jemand ein link von einer doku die das Erläutert.
    Was willst du denn genau tun? Willst du dass die Datenbankverbindung die Hibernate benutzt nicht von Hibernate selbst Konfiguriert wird, sondern stattdessen aus dem JNDI gezogen wird?

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    darksmilie darksmilie ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Paderborn
    Beiträge
    243
    richtig.

    Da ich meine anwendung auf einem Websphere Portal laufen habe und hibernate da ständig durchläuft und JNDI nicht .
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Das ist in der Hibernate Reference erklärt:
    HIBERNATE - Relational Persistence for Idiomatic Java

    Weiterhin bietet es sich an die SessionFactory auch im JNDI zu hinterlegen.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  5. #5
    darksmilie darksmilie ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Paderborn
    Beiträge
    243
    besten dank.
     

  6. #6
    darksmilie darksmilie ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Paderborn
    Beiträge
    243
    gibt es auch eine dokumentation über die einstellung am Server? ich programmiere mit dem Rational 6 und benutze als server ein Webshpere Portal 5.0 Testumgebung.
     

  7. #7
    darksmilie darksmilie ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Paderborn
    Beiträge
    243
    Hmm mein JNDI möchte einfach nicht laufen. Ich habe die DB - Daten in der Server Konfiguration abgelegt.

    Meine hibernate.properties
    Code :
    1
    2
    3
    4
    5
    6
    
    hibernate.connection.datasource = java:/jdbc/jndiDB
    hibernate.transaction.factory_class = \
        org.hibernate.transaction.JTATransactionFactory
    hibernate.transaction.manager_lookup_class = \
        org.hibernate.transaction.JBossTransactionManagerLookup
    hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

    meine SessionFactory:
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    
    private SessionFactory _sessionFactory;
        private Session _session;
        private ThreadLocal _threadLocal = new ThreadLocal();
     
        // Template Methods
        protected abstract String getKeyFieldName();
        protected abstract Class getStoredClass();  
     
        // Methods
        protected AbstractServiceDBImpl() {
    //      initalizeHibernate();
            if (! isHibernateInitialized())
                initalizeHibernate();
        }
        
        protected Session getSession() throws HibernateException {
            Contract.require(isHibernateInitialized(), "hibernate ist initialisiert");
     
            Session session = (Session) _threadLocal.get();
            
            if (session == null || !session.isOpen()) {     
                session = _sessionFactory.openSession(); 
                _threadLocal.set(session);
            }
            /*try {
                int i = 0;
                System.out.println(">>> session.connection().isClosed() " + session.connection().isClosed());
            } catch (HibernateException e) {
                System.out.println("Probleme beim connect");
                //e.printStackTrace();
            } catch (SQLException e) {
                System.out.println("Probleme beim connect");
                //e.printStackTrace();
            }*/ 
                    
            session.clear();
            
            Contract.ensure(session != null, "result");
            return session;
        }
      
        private boolean sessionIsConnected()
        {
    //        return _session.isConnected();
            return ((Session) _threadLocal.get()).isConnected();
        }
     
        protected boolean isHibernateInitialized() {
            return _sessionFactory != null;
        }
     
        /**
         * Hibernate initialisieren. SessionFactory merken.
         */
        private void initalizeHibernate() {
            Contract.require(!isHibernateInitialized(), "Hibernate is not initialized yet");
            try
            {
                // Konfigurationsdateien einlesen
                URL mappingURL = getClass().getClassLoader().getResource("mapping.xml");
                InputStream in = getClass().getClassLoader().getResourceAsStream("hibernate.properties");
                
                Properties properties = new Properties();
                properties.load(in);
        
                // Hibernate konfigurieren
                Configuration configuration = new Configuration();
                configuration.setProperties(properties);
                configuration.addURL(mappingURL);
        
                // SessionFactory merken! Sie erzeugt die benötigten Sessions.
                [B]_sessionFactory = configuration.buildSessionFactory();[/B]
            }
            catch (HibernateException e)
            {
                System.out.println("Probleme beim Konfigurieren von Hibernate!");
                e.printStackTrace();
            }
            catch (IOException e)
            {
                System.out.println("Probleme beim Zugriff auf die Datei hibernate.properties");
                e.printStackTrace();
            }
        
            Contract.ensure(isHibernateInitialized(), "Hibernate is successfully initialized");
        }

    an der markierten Stelle meldet er ein Fehler.
     

  8. #8
    darksmilie darksmilie ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Paderborn
    Beiträge
    243
    So kleine Änderung:

    hibernate.cfg.xml:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     
    <hibernate-configuration>
     
        <!-- a SessionFactory instance listed as /jndi/name -->
        <session-factory
            name="java:hibernate/SessionFactory">
     
            <!-- properties -->
            <property name="connection.datasource">java:/jdbc/jndiUrlaubsplaner</property>
            <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
            <property name="show_sql">false</property>
            <property name="transaction.factory_class">
                org.hibernate.transaction.JTATransactionFactory
            </property>
     
        </session-factory>
     
    </hibernate-configuration>

    SessionFactory:
    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
    
        private void initalizeHibernate() {
            Contract.require(!isHibernateInitialized(), "Hibernate is not initialized yet");
            try
            {
                // Konfigurationsdateien einlesen
                URL mappingURL = getClass().getClassLoader().getResource("mapping.xml");
                InputStream in = getClass().getClassLoader().getResourceAsStream("hibernate.cfg.xml");
     
                Properties properties = new Properties();
                properties.load(in);
                System.out.println("test3");
                // Hibernate konfigurieren
                Configuration configuration = new Configuration();
                configuration.setProperties(properties);
                configuration.addURL(mappingURL);
        System.out.println("test4");
                // SessionFactory merken! Sie erzeugt die benötigten Sessions.
                _sessionFactory = configuration.configure("hibernate.cfg.xml").buildSessionFactory();
            }
            catch (HibernateException e)
            {
                System.out.println("Probleme beim Konfigurieren von Hibernate!");
                e.printStackTrace();
            }
            catch (IOException e)
            {
                System.out.println("Probleme beim Zugriff auf die Datei hibernate.properties");
                e.printStackTrace();
            }
        
            Contract.ensure(isHibernateInitialized(), "Hibernate is successfully initialized");
        }

    als Fehlermeldung bekomme ich:
    [14.07.06 08:59:30:750 CEST] 6c805553 DatasourceCon F org.hibernate.connection.DatasourceConnectionProvider Could not find datasource: java:/jdbc/jndiUrlaubsplaner
    [14.07.06 08:59:30:750 CEST] 6c805553 DatasourceCon F org.hibernate.connection.DatasourceConnectionProvider TRAS0014I: Die folgende Ausnahmebedingung wurde protokolliert: javax.naming.NameNotFoundException: Name not found in context "java:".
     

  9. #9
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Dann schau doch mal im Websphere JNDI Explorer in welchem JNDI Space deine SessionFactory / Connection nun gebunden wurde.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  10. #10
    darksmilie darksmilie ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Paderborn
    Beiträge
    243
    Was meinst denn du damit meine Rational Websphere Portal 5.0 Testumgebung besitzt sowas nicht.
     

  11. #11
    darksmilie darksmilie ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Paderborn
    Beiträge
    243
    Zitat Zitat von Thomas Darimont
    Hallo!

    Dann schau doch mal im Websphere JNDI Explorer

    Gruß Tom
    wo soll denn der sein?

    bzw. ist es überhaupt möglich eine verbing mit jndi und hibernate in eine Portalanwendung herzustellen?
    Geändert von darksmilie (17.07.06 um 09:50 Uhr)
     

Ähnliche Themen

  1. Hibernate SessionFactory über JNDI Oracle 10g Application Server (OC4J
    Von F5erl im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 09.12.08, 17:00
  2. Hibernate Persistence.xml - Sinnvoller Wert für hibernate.hbm2ddl.auto
    Von Herr_M im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 3
    Letzter Beitrag: 08.10.08, 08:21
  3. Hibernate: Mapping v. Beziehungen und was Hibernate daraus macht
    Von DerGrinsemann im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 14.08.08, 12:53
  4. Antworten: 2
    Letzter Beitrag: 13.06.07, 09:24
  5. Antworten: 1
    Letzter Beitrag: 25.01.06, 17:59