Я бы предложил разместить файл с именем jndi.properties
в src/test/resources
для вашей конфигурации OpenEJB.Затем он будет доступен в тестовом пути к классам, затем вы можете использовать конструктор без аргументов InitialContext для поиска источников данных и ejbs.Пример конфигурации выглядит следующим образом: я использую mysql для своего источника данных:
java.naming.factory.initial=org.apache.openejb.client.LocalInitialContextFactory
myDS=new://Resource?type=DataSource
myDS.JdbcDriver=com.mysql.jdbc.Driver
myDS.JdbcUrl=jdbc:mysql://127.0.0.1:3306/test
myDS.JtaManaged=true
myDS.DefaultAutoCommit=false
myDS.UserName=root
myDS.Password=root
Затем OpenEJB должен автоматически заменить ссылку в persistence.xml на этот источник данных, если это единственный источник данных, то это должно работатьдаже если имена разные.
Редактировать: Настройки единиц сохраняемости
В соответствии с документацией , на которую вы ссылались , также должна быть возможность настроить постоянствосвойства модуля через jndi.properties:
abc.hibernate.hbm2ddl.auto=update
abc.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
Я сам не проверял это, так как использую mysql как для тестов, так и для нормального выполнения, только с разными именами баз данных.Пожалуйста, дайте мне знать, если это работает, я думал о замене mysql в моих тестовых случаях.