2017-12-05 1 views
0

Ich versuche, eine Session Bean mit Persistenz mit Arquillian mit eingebetteten Tomee zu testen. Tomee versucht jedoch, eine Verbindung zu seiner Standard-HSQLDB-Datenquelle herzustellen.Testen mit Arquillian in Embedded Tomee: Wie HSQL-Datenquelle zu entfernen?

AFAIK, ich sollte Tomee anweisen, tomee.xml zu verwenden, wo die HSQLDB-Datenquelle kommentiert wird.

Wie kann ich das mit arquillian.xml tun? Oder gibt es einen anderen Weg?

Meine Bereitstellungsmethode:

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

Mein 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> 

Mein 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> 

Antwort

0

ich das Problem gefunden zu haben.

 <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> 
:

Die Datenquelle sollte in arquillian.xml konfiguriert werden,

Verwandte Themen