如何使用Hibernate在容器模式下运行Arquillian测试 我在阅读EJB 3,第二版的MANIN,并且在ITELLIJ中对源运行测试很困难。
测试是: 可以找到完整的源代码: 更新 domain.xml位于: 从错误来看,似乎无法建立数据库连接。但是,我不确定为什么它不能连接到内存中的derby数据库。由于domain.xml具有如何使用Hibernate在容器模式下运行Arquillian测试 我在阅读EJB 3,第二版的MANIN,并且在ITELLIJ中对源运行测试很困难。,hibernate,jakarta-ee,ejb-3.1,Hibernate,Jakarta Ee,Ejb 3.1,测试是: 可以找到完整的源代码: 更新 domain.xml位于: 从错误来看,似乎无法建立数据库连接。但是,我不确定为什么它不能连接到内存中的derby数据库。由于domain.xml具有create=true属性,因此只需创建数据库即可 从错误来看,似乎无法建立数据库连接。但是,我不确定它要连接到哪个数据库。我的系统上没有为此运行的数据库 测试应该尝试连接到中配置的内存中derby数据库实例,因此我认为您不需要任何进一步的设置 建议对arquillian.xml进行一些更改。也许值得一试。谢
create=true
属性,因此只需创建数据库即可
从错误来看,似乎无法建立数据库连接。但是,我不确定它要连接到哪个数据库。我的系统上没有为此运行的数据库
测试应该尝试连接到中配置的内存中derby数据库实例,因此我认为您不需要任何进一步的设置
建议对arquillian.xml进行一些更改。也许值得一试。谢谢,这就把事情弄清楚了。我无法查看
domain.xml
,但是,即使添加了名称空间,也会出现相同的错误。
@RunWith(Arquillian.class)
@Run(RunModeType.IN_CONTAINER)
....
.....
@Deployment
public static Archive<?> createDeployment() {
return ShrinkWrap.create(JavaArchive.class, "foo.jar").addClasses(OrderProcessor.class,
OrderProcessorBean.class,
ItemService.class,
ItemServiceBean.class, Bid.class, Bidder.class, Item.class).addManifestResource("test-persistence.xml", ArchivePaths.create("persistence.xml"));
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="users" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/chapter2</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" />
</properties>
</persistence-unit>
</persistence>
WARNING: Could not obtain connection to query metadata
java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused.
at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:112)
at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:71)
Do I need to have a database running specifically or will the test run a database on it's own?
If so, which one?