Datenbank Probleme nach Erstellen einer MasterDetailForm

mckruep

Mitglied
Hey Leute,
hab ein Programm geschrieben, welches Hibernate für den Datenbankzugriff nutzt. Soweit auch kein Problem. Wenn ich jetzt eine MasterDetailForm erstelle, bekomm ich anschließend beim ausführen eine Abfrage folgenden fehler:
Exception occurred during event dispatching: java.lang.NoClassDefFoundError: Could not initialize class

kann mir jemand erklären wodran das liegen könnte?

Danke für die Hilfe!!
 
Wenn du uns nun noch verraten würdest welche Klasse denn nicht gefunden wird. Vollständige Exceptions posten erhöht die Chance auf eine Antwort doch sehr.
 
Klar kein Problem,

das ist die Klasse EntityManager und die sieht folgendermaßen aus:

Code:
package org.cyrexit.EntityManager;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;

/**
 *
 * @author chillor
 */
public class cls_entitymanager {

    static {
        getEntityManager();
    }

    public cls_entitymanager() {
    }
    /** Die Variable entityManagerFactory und entityManager werden im Singelton Pattern erstellt. Dies bedeutet dass immer nur eine Instance im gesamten Programm erlaubt ist, welche von überall abgerufen werden kann. Dadurch wird die Datenbankverbindung nur ein Mal beim Programmstart aufgebaut.*/
    private static javax.persistence.EntityManagerFactory entityManagerFactory;
    private static javax.persistence.EntityManager entityManager;

    /**Existiert bereits eine Instance vom EntityManager wird diese direkt durch den Befehl „return entitiyManager“ zurückgegeben.Existiert noch keine Instance des EntityMangagers wird über die Zeile entityManagerFactory = javax.persistence.Persistence.createEntityManagerFactory("SUA_NewPU"); eine neue Instance erzeugt. Der String „SUA_NewPU“ steht hier für den persistence-unit name in der persistence.xml Datei.
    Ist ein Fehler bei Aufbau der Verbindung entstanden warten die Methode zwei Sekunden und ruft sich Rekusiev wieder auf.  */
    public static EntityManager getEntityManager() {
        if (entityManager == null) {
            try {
                entityManagerFactory = javax.persistence.Persistence.createEntityManagerFactory("BuchhaltungssoftwarePU");
            } catch (java.lang.IllegalStateException ex) {
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException ex1) {
                    Logger.getLogger(cls_entitymanager.class.getName()).log(Level.SEVERE, null, ex1);
                }
                getEntityManager();
            }
            entityManager = entityManagerFactory.createEntityManager();
        }
        return entityManager;
    }

    public static EntityManagerFactory getEntityManagerFactory() {
        if (entityManagerFactory == null) {
            entityManagerFactory = javax.persistence.Persistence.createEntityManagerFactory("BuchhaltungssoftwarePU");
            entityManager = entityManagerFactory.createEntityManager();
        }
        return entityManagerFactory;
    }
}

Danke für die Hilfe
 
Ich mein die Fehlermeldung und nicht wie die Klasse aussieht.

Das was du da machst ist übrigens kein richtiges Singleton-Pattern und Klassen-Namen werden immer groß geschrieben.
 
ja ich weiß normalerweise müsste das mit private static instance = null ... und dann getter etc ... aber für nen Test reicht das so auch :)

Fehlermeldung:

Exception occurred during event dispatching:
java.lang.NoClassDefFoundError: Could not initialize class org.cyrexit.EntityManager.cls_entitymanager
at main.Hauptfenster.login(Hauptfenster.java:346)
at main.Hauptfenster.txtf_PasswordActionPerformed(Hauptfenster.java:372)
at main.Hauptfenster.access$000(Hauptfenster.java:31)
at main.Hauptfenster$1.actionPerformed(Hauptfenster.java:116)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:492)
at javax.swing.JTextField.postActionEvent(JTextField.java:705)
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:820)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1636)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2849)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2884)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2812)
at java.awt.Component.processEvent(Component.java:5993)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:704)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:969)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:841)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:668)
at java.awt.Component.dispatchEventImpl(Component.java:4455)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1051)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
 
Zurück