2017-02-01 1 views
0

Я настраиваю Arquillian с OpenEJB. Я хочу протестировать веб-сервис с доступом к базе данных. Я смог настроить все с помощью своего собственного компонента и объекта для тестирования.Arquillian Entities с схемой

Теперь я добавляю все классы и зависимости и пытаюсь запустить тест. Но он не развертывается, потому что мои объекты имеют схему, определенную в аннотации @Table.

arquillian.xml

<arquillian xmlns="http://jboss.org/schema/arquillian" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation=" 
     http://jboss.org/schema/arquillian 
     http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> 
    <engine> 
     <property name="deploymentExportPath">target/deployments</property> 
    </engine> 

    <container default="true" qualifier="openejb-embedded-4"> 
     <configuration> 
      <property name="properties"> 
       testDatabase = new://Resource?type=DataSource 
      </property> 
     </configuration> 
    </container> 
</arquillian> 

persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.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_2_0.xsd"> 
    <persistence-unit name="newejb" transaction-type="JTA"> 
     <jta-data-source>testDatabase</jta-data-source> 
     <class>[...].AuftragsHistorie</class> 
     <properties> 
      <property name="openejb.jpa.init-entitymanager" value="true" /> 
      <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

AuftragsHistorie.java

@Entity(name = "AuftragsHistorie") 
@SequenceGenerator(
    name = "AUFTRAGSHISTORY_GENERATOR", 
    sequenceName = "SEQ_T_PUB_INET_DAF", 
    allocationSize = 1 
) 
@Table(
    name = "T_PUB_INET_DAF", 
    schema = "DATA_SCHEMA" 
) 
public class AuftragsHistorie implements Serializable { 

последняя часть StackTrace

Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: invalid schema name: DATA_SCHEMA in statement [CREATE TABLE DATA_SCHEMA.T_PUB_INET_DAF (ID BIGINT NOT NULL, AUFTRAGS_ART_NAME VARCHAR(255) NOT NULL, ERF_DATUM TIMESTAMP NOT NULL, VERS_NR VARCHAR(255) NOT NULL, PRIMARY KEY (ID))] {stmnt 2112059634 CREATE TABLE DATA_SCHEMA.T_PUB_INET_DAF (ID BIGINT NOT NULL, AUFTRAGS_ART_NAME VARCHAR(255) NOT NULL, ERF_DATUM TIMESTAMP NOT NULL, VERS_NR VARCHAR(255) NOT NULL, PRIMARY KEY (ID))} [code=-4850, state=3F000] 
    at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:218) 
    at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:202) 
    at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:58) 
    at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:913) 
    at org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate(DelegatingStatement.java:118) 
    at org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1231) 
    at org.apache.openjpa.jdbc.schema.SchemaTool.createTable(SchemaTool.java:976) 
    at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:552) 
    at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:364) 
    at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:341) 
    at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:505) 
    ... 109 more 

Я уже пробовал добавить схему через аннотацию @CreateShema и добавить много разных свойств, но ничто не решило проблему.
Arquillian запускает базу данных HSQL.

ответ

Смежные вопросы