Ich entwickle eine einfache Java-EE-Anwendung mit einer EAR-Datei, die JAR- und WAR-Dateien enthält. Im EAR-Projekt unter EarContent / META-INF habe ich folgende glassfish-resources.xml:
%Vor%Im EJB-Projekt unter META-INF habe ich folgende persistence.xml:
%Vor%Ich habe einen laufenden Derby-Server und die Portnummer ist korrekt. Die Anwendung funktioniert, außer dass keine Datenbank erstellt wird. Was kann falsch sein? Dieser Ansatz arbeitete mit Glassfish 3.1.
Hank
Es scheint, dass die Konfiguration von Glassfish v4 der jdbc-Datenquelle sich ein wenig von v3 geändert hat. Sie müssen die Eigenschaft connectionAttributes
angeben, um die Datenbank zu erstellen. Die Eigenschaft createDatabase
ist nicht dokumentiert und wird wahrscheinlich ignoriert.
Property connectionAttributes
ist ebenfalls nicht gut dokumentiert, aber Sie finden ein Beispiel in Glassfish 4 PDF-Dokumentation ( Administrationshandbuch - Abschnitt Verwalten von JDBC-connectino-Pools) oder in Quellen von Payara Server , der von Glassfish 4 abgeleitet ist.
Ich hatte vor einem Monat mit einem ähnlichen Problem zu kämpfen. Am Ende hatte ich folgenden Status in meinen XMLs (im Vergleich zu dir):
glassfish-resources.xml
URL
und driverClass
Eigenschaften zu glassfish-resources.xml
hinzugefügt
jndi-name
und pool-name
jdbc-connection-pool
-Tag diese beiden Attribute:
%Code%
res-type="javax.sql.DataSource",
datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
Eigenschaft Edit: Hier sind meine glassfish-Ressourcen (es wurde tatsächlich automatisch von netbeans generiert, ich habe gerade die richtigen Zugangsdaten und Ressourcennamen hinzugefügt)
%Vor%persistence.xml
%Vor% Gemäß der aktuellen GF-Dokumentation wird createDatabase
nur für die Generierung von Server-Ressourcen (Verbindungspool und JDBC-Ressource) verwendet, und die Datenbankgenerierung kann einfach von glassfish-resources.xml
aus verwaltet werden.