в Интернете Я часто нахожу последние, но противоположные данные по этой теме ..., поэтому я хотел бы задать вопрос о минимальных требованиях.Arquillian: Нужен ли мне domain.xml и arquillian.xml для минимальных тестов Glassfish Embedded с помощью Derby DB?
Моя цель состоит в том, чтобы сделать очень простой тест интеграции простой EJB 3.1 приложения:
- Простой JPA 2.0 функциональность с EclipseLink
- Arquillian с JUnit для тестирования
- Maven
- Derby DB (в памяти или файле в ./target), контекст сохранения JTA.
- Embedded Glassfish в Arquillian
Так что я просто хочу, чтобы сделать простой тест JPA. Я получаю свою Glassfish, работающую в Arquillian, но когда я делаю свой материал JPA, мое приложение всегда не справляется с DB Derby (говорит, что нет таблиц и т. Д.), Но файлы DDL выглядят разумно. Я играл с указанием имени схемы, пользователя и т. Д. В моем persistence.xml, но ничего не помогает. Иногда появляются сообщения о том, как внести изменения в минимальный domain.xml для встроенной Glassfish в соответствие с моим persistence.xml или адаптировать arquillian.xml.
Мой вопрос: для этого минимального подхода - действительно ли я требую, чтобы src/test/glassfish/domains/domain1/domain.xml или arquillian.xml?
Я уверен, что некоторое время назад мне удалось сделать это с помощью Embedded Glassfish, но с использованием Hibernate 4 в качестве поставщика JPA. У меня нет доступа к проекту еще больше и, следовательно, я не могу сказать разницы, кроме того, что я определенно не добавил domain.xml и т. Д. Сообщения, подобные (other question here), действительно меня путают.
Важно, что я не использую управляемый сервер, а встроенный.
Спасибо и веселит, Timo
Вот одна из моих версий, смотрите мой следующий комментарий.
<persistence-unit name="localiser-core" transaction-type="JTA">
<jta-data-source>jdbc/__default</jta-data-source>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
<property name="javax.persistence.jdbc.url"
value="jdbc:derby:memory:test;create=true" />
<property name="javax.persistence.jdbc.user" value="" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="eclipselink.target-database" value="Derby"/>
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
<property name="eclipselink.ddl-generation" value="create-tables" />
<property name="eclipselink.application-location" value="target" />
<property name="eclipselink.create-ddl-jdbc-file-name" value="create.sql"/>
<property name="eclipselink.drop-ddl-jdbc-file-name" value="drop.sql"/>
<property name="eclipselink.debug" value="ALL"/>
<property name="eclipselink.weaving" value="static"/>
<property name="eclipselink.logging.level" value="FINEST"/>
<property name="eclipselink.logging.level.sql" value="FINEST"/>
<property name="eclipselink.logging.level.cache" value="FINEST"/>
</properties>
</persistence-unit>
Это одна из многих адаптаций моей настойчивости.xml - Я пробовал много вариантов с файлами, разными именами БД, именами пользователей и паролей и т. д. Также кажется, что он может вызывать SQL-запросы против БД, но похоже, что схемы просто нет. Кроме того, добавление/удаление имени источника данных JTA не помогло :( –