@ Брайан Он не пытается запустить Derby в режиме сетевого сервера, он хочет запустить его во встроенном режиме, поэтому я не думаю, что ваше предложение поможет в этом случае.
Проблема, которую он видит, состоит в том, что у него есть источник данных JTA с именем jdbc / _ default, определенный в его файле persistence.xml. Когда встроенный glassfish видит это, он пытается найти его в контексте JNDI, а когда он обнаруживает ресурс jdbc / _default, определенный в используемом им доменном файле .xml. По умолчанию это сетевой ресурс Derby, определенный в файле domain.xml.
Что нужно сделать Digambar, так это запустить GF и создать новый пул соединений, который использует встроенное дерби, и создать новый ресурс jdbc, который использует этот пул для домена.
Я использовал веб-консоль glassfish, но вы также можете использовать команду asadmin, если вы знаете все параметры командной строки для различных параметров. В любом случае ваш домен.xml будет иметь новые ресурсы. Как только вы это сделаете, просто измените ваш файл persistence.xml так, чтобы источник jta-datasource ссылался на этот новый ресурс jdbc, и у вас все было готово. Вы также можете удалить два свойства javax.persistence из вашего файла persistence.xml, поскольку в данный момент они не нужны (эти параметры устанавливаются при настройке нового ресурса пула соединений).
Убедитесь, что для свойства ConnectionAttributes задано значение; create = true при настройке встроенного пула соединений.
После создания пула соединений и ресурсов jdbc у моего домена .xml было следующее. Ваши могут выглядеть немного иначе, в зависимости от настроек, которые вам нужны для вашего конкретного приложения.
<jdbc-connection-pool connection-validation-method="auto-commit" validation-table-name="SYS.SYSALIASES" allow-non-component-callers="true" connection-leak-reclaim="true" lazy-connection-association="true" connection-creation-retry-attempts="90" lazy-connection-enlistment="true" validate-atmost-once-period-in-seconds="120" driver-classname="" datasource-classname="org.apache.derby.jdbc.EmbeddedDataSource40" res-type="javax.sql.DataSource" connection-leak-timeout-in-seconds="60" description="" name="GFEmbeddedPool" is-connection-validation-required="true">
<property name="DatabaseName" value="C:\tmp\db\unit-test"></property>
<property name="ConnectionAttributes" value=";create=true"></property>
<property name="AttributesAsPassword" value="false"></property>
<property name="LoginTimeout" value="0"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="GFEmbeddedPool" description="" jndi-name="jdbc/__embeddedGF"></jdbc-resource>