HSQLDB Problem mit Eclipselink in runnable Jar

Nemesys88

Bekanntes Mitglied
Hallo zusammen,

habe eine kleine Anwendung geschrieben (JavaFX, JPA, Eclipselink, HSQLDB) - die ich mit Eclipse entwickelt habe.
Möchte daraus jetzt ein Runnable Jar erstellen, um es ohne die IDE ausführen zu können.

Bekomme folgende Fehlermeldung beim Ausführen des Jar über die Eingabeaufforderung (java -jar app.jar):

Code:
Caused by: org.eclipse.persistence.exceptions.PersistenceUnitLoadingException:
Exception Description: An exception was thrown while processing persistence.xml from URL: rsrc:../
Internal Exception: java.net.MalformedURLException
    at org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.exceptionProcessingPersistenceXML(PersistenceUnitLoadingException.java:120) ~[rsrc:eclipselink-2.7.6.jar:2.7.6.v20200131-b7c997804f]
    at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processPersistenceXML(PersistenceUnitProcessor.java:679) ~[rsrc:eclipselink-2.7.6.jar:2.7.6.v20200131-b7c997804f]
    at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processPersistenceArchive(PersistenceUnitProcessor.java:639) ~[rsrc:eclipselink-2.7.6.jar:2.7.6.v20200131-b7c997804f]
    ... 19 more
Caused by: java.net.MalformedURLException
    at java.net.URL.<init>(URL.java:706) ~[?:?]
    at java.net.URL.<init>(URL.java:568) ~[?:?]
    at java.net.URL.<init>(URL.java:515) ~[?:?]
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:649) ~[?:?]
    at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150) ~[?:?]
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:860) ~[?:?]
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824) ~[?:?]
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) ~[?:?]
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224) ~[?:?]
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635) ~[?:?]
    at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processPersistenceXML(PersistenceUnitProcessor.java:677) ~[rsrc:eclipselink-2.7.6.jar:2.7.6.v20200131-b7c997804f]
    at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processPersistenceArchive(PersistenceUnitProcessor.java:639) ~[rsrc:eclipselink-2.7.6.jar:2.7.6.v20200131-b7c997804f]
    ... 19 more
Caused by: java.lang.NullPointerException
    at java.net.URL.<init>(URL.java:612) ~[?:?]
    at java.net.URL.<init>(URL.java:568) ~[?:?]
    at java.net.URL.<init>(URL.java:515) ~[?:?]
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:649) ~[?:?]
    at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150) ~[?:?]
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:860) ~[?:?]
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824) ~[?:?]
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) ~[?:?]
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224) ~[?:?]
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635) ~[?:?]
    at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processPersistenceXML(PersistenceUnitProcessor.java:677) ~[rsrc:eclipselink-2.7.6.jar:2.7.6.v20200131-b7c997804f]
    at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processPersistenceArchive(PersistenceUnitProcessor.java:639) ~[rsrc:eclipselink-2.7.6.jar:2.7.6.v20200131-b7c997804f]
    ... 19 more

Die Anwendung schafft es wohl irgendwie nicht, den Persistenz-Kontext herzustellen.

Weitere Infos:

Persistence.xml:

XML:
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
  version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
  <persistence-unit name="persUnitcrudEditor" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>model.entities.Property</class>
    <class>model.entities.Kundenwert</class>
     <class>model.entities.Domaene</class>
    <properties>
      <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver" />
      <property name="javax.persistence.jdbc.url"    value="jdbc:hsqldb:hsqldb" />
      <property name="javax.persistence.jdbc.user" value="sa" />
      <property name="javax.persistence.jdbc.password" value="" />
      <property name="eclipselink.ddl-generation" value="create-or-extend-tables" />
      <property name="eclipselink.ddl-generation.output-mode" value="database" />
    </properties>
  </persistence-unit>
</persistence>

Maven-Dependencies:

<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.7.6</version>
</dependency>

Jemand eine Idee, wo ich da ansetzen kann?

Wenn noch Infos benötigt werden, stelle ich diese gerne zur Verfügung!

Vielen Dank schonmal.

P.s.: Schaue morgen erst wieder hier rein. ;)
 

Nemesys88

Bekanntes Mitglied
Also, es muss irgendwas mit Eclipselink und der Verbindung zur Datenbank liegen. Wenn ich die Aufrufe entsprechend auskommentiere, sehe ich beim Starten der Runnable Jar immerhin das Hauptfenster...
 

LimDul

Top Contributor
Wie wird den der Persistence-Kontext aufgebaut? Es reicht ja nicht irgendwo eine persistence.xml abzulegen :)

Da scheint Java irgendwas mit der URL zur Persistence.xml nicht zu passen.
 

Nemesys88

Bekanntes Mitglied
Ich rufe in der Main eine Zwischenklasse new DBHelper() auf.
In dieser wird private EntityManager entityManager = EntityManagerUtil.getEntityManager(); initialisiert.

Die Util-Klasse sieht so aus:

Java:
public class EntityManagerUtil {

    private static EntityManagerFactory entityManagerFactory;
   
    private static final Logger logger = LogManager.getLogger(EntityManagerUtil.class.getName());

    static {
        try {
            entityManagerFactory = Persistence.createEntityManagerFactory("persUnitcrudEditor"); //$NON-NLS-1$
        } catch (Throwable ex) {
            logger.error("Initial SessionFactory creation failed.", ex); //$NON-NLS-1$
            JOptionPane.showMessageDialog(null, "Datenbank-Verbindung konnte nicht initialisiert werden.", "Fatal Error", JOptionPane.ERROR_MESSAGE); //$NON-NLS-1$ //$NON-NLS-2$
            System.exit(0);
        }
    }

    public static EntityManager getEntityManager() {
        return entityManagerFactory.createEntityManager();
    }

    public static void shutdown() {
        entityManagerFactory.close();
    }
}

...und da im static - Block läuft er in die Exception (allerdings nur in der Runnable Jar)
 

LimDul

Top Contributor
Hmm. Sieht seltsam aus. Zwei Anätze
a) Beim packen der XML in das Jar passiert irgendein Unfug und was mit dem Encoding passt nicht. Öffne das Jar mal ZIP File und schau dir da reingepackte XML an.
b) Irgendwas ist bei der Url die Eclipselink zusammenbaut schrägt - probier mal ob du mit einem Debugger das jar starten kannst und einen Breakpoint in XMLEntityManager.setupCurrentEntity setzen kannst und dir die URL Ansehen kannst
 

Nemesys88

Bekanntes Mitglied
a) Die XML in dem JAR sieht korrekt aus.
b) Ich glaube tatsächlich auch, dass die URL der XML nicht passt:
- In der IDE: xml => C:\Users\Dennis\eclipse-workspace\CrudEditor\target\classes\META-INF\persistence.xml
- Mit Runnable Jar: das Jar: C:\Users\Dennis\Desktop\Final\CrudEditor.jar
die XML: C:\Users\Dennis\Desktop\Final\META-INF\persistence.xml
 

LimDul

Top Contributor
Die Url gibst du doch nirgendwo an - die sollte sich normalerweise auf den Classpath beziehen. Also jeweils eigentlich /META-INF/persistence.xml lauten.
 

Nemesys88

Bekanntes Mitglied
Ja. Die Url in der IDE habe ich jetzt dort ausgelesen, wo du geschrieben hast.
Die Urls beim Runnable Jar habe ich jetzt aus dem Windows-Explorer ausgelesen (weil ich keine Ahnung hab, wie ich ausserhalb einer IDE debugge).
Meine Vermutung ist halt, das mein Fehler ist, dass ich den META-INF - Ordner in einer Ebene mit dem Jar-File habe.
Sonst kann ich mir nicht erklären, warum er die Xml nicht findet...
 

Nemesys88

Bekanntes Mitglied
Stimmt, ist er auch. Dann kann ich den Ordner neben dem Jar komplett löschen.
Ändert leider auch alles nichts.
Je nach Library Handling bekomme ich den DB-Fehler (Eingangspost) / Library Handling: Package..
Oder einen JNI - Fehler (JavaFX Dateien fehlen) bei den anderen beiden Möglichkeiten.
 

Nemesys88

Bekanntes Mitglied
Vielleicht ist das auch der falsche Ansatz...
"Extract Libaries..." scheint die richtige Option zu sein.
Allerdings kommt dann:
"Error: JavaFX runtime components are missing, and are required to run this application"
Jetzt dachte ich, es liegt daran, dass ich in der Debug-Configuration noch:
--module-path F:\javafx-sdk-11.0.2\lib --add-modules javafx.controls,javafx.fxml
angegeben habe und der das im Runnable Jar halt nicht kennt...
Mein Versuch, die Dateien aus dem lib - Verzeichnis in den Classpath einzubinden hat allerdings leider auch zu keiner Veränderung geführt...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
C Problem mit Apache Poi Datenbankprogrammierung 6
P GroupLayout-Problem Datenbankprogrammierung 12
F XAMPP max connections problem Datenbankprogrammierung 6
C MySQL Problem in phpMyAdmin Oberfläche Datenbankprogrammierung 5
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
C Problem with insertion in database. Datenbankprogrammierung 7
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
A kleines Problem Datenbankprogrammierung 6
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
V Derby/JavaDB updateRow Problem Datenbankprogrammierung 0
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
Nuiton EmbeddedDriver Problem Datenbankprogrammierung 6
A MongoDB Passwort Problem Datenbankprogrammierung 0
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
F MySQL JDBC Problem Datenbankprogrammierung 5
Anfänger2011 Datenbankstruktur/aufbau (theoretisches Problem) Datenbankprogrammierung 5
M Derby/JavaDB Drop Database problem Datenbankprogrammierung 3
M Derby/JavaDB NOT LIKE problem Datenbankprogrammierung 19
N HSQLDB Problem mit EntityManager Datenbankprogrammierung 7
B MySQL JPAContainer Problem Datenbankprogrammierung 4
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
C Problem oder Denkfehler mit H2-Database Datenbankprogrammierung 3
E Wie kann man das Problem mit der BLOB-Spalte lösen? Datenbankprogrammierung 1
M Problem mit jcouchdb und CouchDB - UTF8 kein gültiger Zeichentyp Datenbankprogrammierung 4
T MySQL Problem mit Datenbankanbindung Datenbankprogrammierung 4
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P SQL Query Problem Datenbankprogrammierung 14
A MySQL Problem bei Tabelle ausgeben Datenbankprogrammierung 3
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
B SQLite Problem bei Planung der Datenbank [Jeopardy] Datenbankprogrammierung 3
A Problem mit dem Import und Export von Bildern Datenbankprogrammierung 4
P Oracle Problem mit Umlauten Datenbankprogrammierung 9
A Problem mit Create-Statement Datenbankprogrammierung 9
D Problem mit COLUMN_IDENTIFIERS Datenbankprogrammierung 8
Bluedaishi MySQL Abfrage Problem :-) Datenbankprogrammierung 21
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
R Resultset.last() Problem Datenbankprogrammierung 12
M Problem GroupBy Datenbankprogrammierung 3
S CURRENT_DATE problem Datenbankprogrammierung 2
M Problem mt JPA Id-Generators Datenbankprogrammierung 18
Gossi Oracle Problem mit group by... Datenbankprogrammierung 22
M MySQL SQL Abfrage Problem Datenbankprogrammierung 6
R MS-SQL Express Login-Problem Datenbankprogrammierung 8
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
N HSQLDB Problem beim Treiberladen im Jar Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
M Problem mit HQL Syntax Datenbankprogrammierung 5
K Db4o Delete Problem Datenbankprogrammierung 11
Mike90 Deadlock/Lock Problem Datenbankprogrammierung 4
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
S ODBC Treiber Problem/oder unvermögen Datenbankprogrammierung 18
J Problem bei Boolean in PreparedStatement Datenbankprogrammierung 5
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
C Problem mit SQL-Abfrage Datenbankprogrammierung 5
K Problem mit Datenbankverbindung via Eclipse Datenbankprogrammierung 2
A Problem mit Eintragen von Daten in eine Datenbank mittels DAO Datenbankprogrammierung 4
S Oracle Problem mit PreparedStatement.setString(1,"str") Datenbankprogrammierung 10
B MySQL Problem mit Datenbankanbindung an MySQL Datenbankprogrammierung 2
N Problem bei Erstellung eines Index Datenbankprogrammierung 12
C Hibernate Property-Problem Datenbankprogrammierung 5
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
c_sidi90 Hibernate Problem Table doesnt excist Datenbankprogrammierung 8
M Problem mit JPA - OneToMany-Relation Datenbankprogrammierung 3
I Hibernate: Composite Foreign Key Problem Datenbankprogrammierung 14
S JPA OptimisticLocking Problem Datenbankprogrammierung 11
I Derby/JavaDB Problem mit Befüllung von Tabelle Datenbankprogrammierung 7
JavaKaffee Derby/JavaDB Quartz-WebAnwendung - Connection/Treiber Problem Datenbankprogrammierung 47
I Problem mit ResultSet Datenbankprogrammierung 2
L Excel in MySQL importieren Problem Datenbankprogrammierung 5
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
T Problem beim schreiben von daten Datenbankprogrammierung 4
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
K Hibernate + MySQL Problem... Datenbankprogrammierung 2
I MySQL MySQL – Proxy Problem Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
M Problem mit Hibernate und Access Datenbankprogrammierung 9
C firebird problem Datenbankprogrammierung 5
F Problem mit Datenbankabfrage Datenbankprogrammierung 7
K SQL Problem mit Date Datenbankprogrammierung 3
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
J sql abfrage ... Problem mit Datumswert Datenbankprogrammierung 3
G MySQL Connection Problem Datenbankprogrammierung 3
O MySQL Problem mit Umlauten?! Datenbankprogrammierung 2
E Hibernate Problem bei bidirektionaler 1:n Verbindung Datenbankprogrammierung 2
D MySQL Problem beim einfügen von Double-Zahlen Datenbankprogrammierung 4
M Oracle Problem mit Resultset Datenbankprogrammierung 11
T Problem bei Zugriff auf Access Datenbank Datenbankprogrammierung 7
W jpmdbc Problem -Beispiel funktioniert nicht Datenbankprogrammierung 9
W Verständnis-Problem JPA Grundlagen Datenbankprogrammierung 5
M Problem Array in BLOB-Feld in DerbyDB zu speichern Datenbankprogrammierung 5
M JPA-Persist Problem Datenbankprogrammierung 2
7 Problem mit Hibernatekonfiguration Datenbankprogrammierung 13

Ähnliche Java Themen

Neue Themen


Oben