Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Hibernate在容器模式下运行Arquillian测试 我在阅读EJB 3,第二版的MANIN,并且在ITELLIJ中对源运行测试很困难。_Hibernate_Jakarta Ee_Ejb 3.1 - Fatal编程技术网

如何使用Hibernate在容器模式下运行Arquillian测试 我在阅读EJB 3,第二版的MANIN,并且在ITELLIJ中对源运行测试很困难。

如何使用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进行一些更改。也许值得一试。谢

测试是: 可以找到完整的源代码:

更新

domain.xml位于:

从错误来看,似乎无法建立数据库连接。但是,我不确定为什么它不能连接到内存中的derby数据库。由于domain.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?