Kijkend naar de volgende regel in de stacktrace
u kunt raden wat het probleem kan zijn. Het eerste probleem is het probleem met de databasedriver, denk ik. 1527
is het standaard poortnummer van de derby-database die bij de Glassfish-toepassingsserver wordt geleverd.
Omdat je geen gegevensbron hebt opgegeven in je configuratie, probeert de server de standaarddatabase te vinden, in dit geval derby; maar u kunt geen verbinding maken met die database omdat u geen verbindingsinformatie voor deze database heeft opgegeven.
U moet dus het volgende doen in uw META-INF/persistence.xml
:
-
Geef het
transaction-type
. op (in uw configuratie wordt aangenomen dat het JTA is omdat u uw toepassing op JEE-omgeving per specificatie implementeert) als<persistence-unit name="unit" transaction-type="JTA">
-
Geef de
jta-data-source
element als een kind vanpersistence-unit
<persistence-unit name="unit" transaction-type="JTA"> ... <jta-data-source>your_data_source_name</jta-data-source> ... </persistence-unit>
Om de bovenstaande configuratie te laten werken, moet u eerst uw applicatieserver (Glassfish) configureren. Hiervoor moet u het MySQL jdbc-stuurprogramma downloaden, het uitpakken en het jar-bestand kopiëren naar <glassfish_installation_directory>/glassfish/domains/domain1/lib
(Ik ga hier uit van Glassfish 3.1). De reden hiervoor is dat Glassfish niet wordt geleverd met MySQL-stuurprogramma, dus u moet dit zelf doen.
Start hierna Glassfish en open de beheerdersconsole (http://localhost:4848 ). Open in het linkerdeelvenster
Resources/JDBC/JDBC Connection Pools
en maak een nieuwe verbindingspoolResources/JDBC/JDBC Resources
en maak een nieuwe gegevensbron aan. De naam die u aan uw gegevensbron geeft, is de naam die u moet gebruiken in uwpersistence.xml
zoals hierboven vermeld.