Patrząc na następujący wiersz w stosie
możesz zgadnąć, jaki może być problem. Pierwszym problemem jest chyba problem ze sterownikiem bazy danych. 1527
to domyślny numer portu bazy danych Derby, która jest dostarczana z serwerem aplikacji Glassfish.
Ponieważ nie podałeś żadnego źródła danych w swojej konfiguracji, serwer próbuje znaleźć domyślną bazę danych, którą w tym przypadku jest derby; ale nie możesz połączyć się z tą bazą danych, ponieważ nie podałeś żadnych informacji o połączeniu dla tej bazy danych.
Musisz więc wykonać następujące czynności w swoim META-INF/persistence.xml
:
-
Podaj
transaction-type
(w twojej konfiguracji zakłada się, że jest to JTA, ponieważ wdrażasz swoją aplikację w środowisku JEE zgodnie ze specyfikacją) jako<persistence-unit name="unit" transaction-type="JTA">
-
Podaj
jta-data-source
element jako element potomnypersistence-unit
<persistence-unit name="unit" transaction-type="JTA"> ... <jta-data-source>your_data_source_name</jta-data-source> ... </persistence-unit>
Aby powyższa konfiguracja działała, musisz najpierw skonfigurować swój serwer aplikacji (Glassfish). Aby to zrobić, musisz pobrać sterownik jdbc MySQL, rozpakować go i skopiować plik jar do <glassfish_installation_directory>/glassfish/domains/domain1/lib
(Zakładam tutaj Glassfish 3.1). Powodem tego jest to, że Glassfish nie jest dostarczany ze sterownikiem MySQL, więc musisz to zrobić sam.
Następnie uruchom Glassfish i otwórz konsolę administracyjną (http://localhost:4848 ). W lewym okienku otwórz
Resources/JDBC/JDBC Connection Pools
i utwórz nową pulę połączeńResources/JDBC/JDBC Resources
i utwórz nowe źródło danych. Nazwa, którą nadasz swojemu źródłu danych, jest tą, którą musisz mieć w swoimpersistence.xml
jak wspomniano powyżej.