Tittar på följande rad i stacktrace
du kan gissa vad problemet kan vara. Det första problemet är problemet med databasdrivrutinen tror jag. 1527
är standardportnumret för derbydatabasen som levereras med Glassfish-applikationsservern.
Eftersom du inte har angett någon datakälla i din konfiguration försöker servern hitta standarddatabasen som är derby i det här fallet; men du kan inte ansluta till den databasen eftersom du inte har angett någon anslutningsinformation för den här databasen.
Så du måste göra följande i din META-INF/persistence.xml
:
-
Ange
transaction-type
(i din konfiguration antas det vara JTA eftersom du distribuerar din applikation i JEE-miljö per specifikation) som<persistence-unit name="unit" transaction-type="JTA">
-
Ange
jta-data-source
element som ett underordnatpersistence-unit
<persistence-unit name="unit" transaction-type="JTA"> ... <jta-data-source>your_data_source_name</jta-data-source> ... </persistence-unit>
För att ovanstående konfiguration ska fungera måste du först konfigurera din applikationsserver (Glassfish). För att göra det måste du ladda ner MySQL jdbc-drivrutinen, packa upp den och kopiera jar-filen till <glassfish_installation_directory>/glassfish/domains/domain1/lib
(Jag antar här Glassfish 3.1). Anledningen till detta är att Glassfish inte levereras med MySQL-drivrutin, så du måste göra detta själv.
Efter detta starta Glassfish och öppna administratörskonsolen (http://localhost:4848 ). Öppna den vänstra rutan
Resources/JDBC/JDBC Connection Pools
och skapa en ny anslutningspoolResources/JDBC/JDBC Resources
och skapa en ny datakälla. Namnet du ger din datakälla är det du måste i dinpersistence.xml
som nämnts ovan.