【问题标题】:Testing using Arquillian in embedded Tomee: How to remove HSQL datasource?在嵌入式 Tomee 中使用 Arquillian 进行测试:如何删除 HSQL 数据源?
【发布时间】:2017-12-05 19:04:33
【问题描述】:

我正在尝试使用嵌入式 Tomee 通过 Arquillian 测试具有持久性的会话 bean。但 Tomee 尝试连接到其默认的 HSQLDB 数据源。

AFAIK,我应该指示 Tomee 在注释 HSQLDB 数据源的地方使用 tomee.xml。

如何使用 arquillian.xml 做到这一点?还是有别的办法?

我的部署方式:

    @Deployment
public static WebArchive createTestArchive() {
    MavenResolverSystem resolver = Maven.resolver();  
    File[] files = resolver.loadPomFromFile("pom.xml").importRuntimeDependencies().resolve().withTransitivity().asFile();  

    for (File f : files) {
        System.out.println(f.getPath());
    }

    return ShrinkWrap.create(WebArchive.class)
            .addClasses(MyBean.class)
            .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
            .addAsManifestResource("persistence.xml", "persistence.xml")
            .addAsLibraries(files);
}

我的persistence.xml:

    <persistence-unit name="oracle">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
        <property name="hibernate.archive.autodetection" value="class" />
        <property name="hibernate.dialect"
            value="org.hibernate.dialect.OracleDialect"/>
        <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />
        <property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:ORADB" />
        <property name="hibernate.connection.username" value="gk2" />
        <property name="hibernate.connection.password" value="qwerty" />
        <!-- <property name="hibernate.show_sql" value="true"/> -->
        <property name="hibernate.flushMode" value="FLUSH_AUTO" />
        <property name="hibernate.hbm2ddl.auto" value="validate" />
    </properties>
</persistence-unit>

我的 arquillian.xml:

<container qualifier="tomee" default="true">
    <configuration>
        <property name="httpPort">-1</property>
        <property name="stopPort">-1</property>
        <!--Optional Container Properties -->
        <property name="properties">
        </property>
    </configuration>
</container>

【问题讨论】:

    标签: java jboss-arquillian apache-tomee


    【解决方案1】:

    我找到了问题。

    数据源要在arquillian.xml中配置:

            <property name="properties">
                oracle = new://Resource?type=DataSource
                oracle.JdbcUrl = jdbc:oracle:thin:@localhost:1521:ORADB
                oracle.JdbcDriver = oracle.jdbc.driver.OracleDriver
                oracle.UserName = username
                oracle.Password = password              
                ...
            </property>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      相关资源
      最近更新 更多