2011-11-25 80 views
1

我在曼宁阅读EJB 3,第二版中间时遇到运行源测试中的IntelliJ如何与Hibernate

测试一个艰难的时间与运行的Arquillian IN_CONTAINER模式测试是: 全部源代码,可以发现here

@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")); 
    } 

的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) 

UPDATE

domain.xml中位于here

从它看起来像一个数据库连接不能建立的错误。但是,我不确定为什么它无法连接到内存德比数据库。由于domain.xml具有create=true属性,所以应该简单地创建数据库。

回答

0

从错误,似乎无法建立数据库连接。但是,我不确定它试图连接到哪个数据库。我没有数据库在我的系统上运行。

Do I need to have a database running specifically or will the test run a database on it's own? 
If so, which one? 

试验应尝试连接到作为配置/test/resources/glassfish/config/domain.xml在内存中的Derby数据库实例,所以我不认为你需要任何进一步的设置。

Brian's comments at this arquillian doc在arquillian.xml中提示了一些更改。也许值得一试。

+0

谢谢,这清除了事情。但是我仍然无法看到'domain.xml',即使添加了命名空间,我也会得到相同的错误。 – Omnipresent