나는 기본 h2/mem 데이터베이스를 사용하는 arquillian 테스트를 수행하고 있습니다. 지금 내 SQL로 전환하고 싶습니다. 먼저 mysql-connector-java-5.1.33-bin.jar
을 standalone/deployments
에 복사했습니다. 로그가 올바른 배포를 확인했습니다. 나는 또한 wildfly의 관리 콘솔을 통해 mysql 데이터 소스를 설정하려고 시도했지만 제대로 작동했다 (연결 테스트를했지만 데이터 소스를 추가하지 않았다). 프로젝트의 테스트 내에 데이터 소스 설정을 유지하려고합니다. 그래서 나는 src/test/resources/test-ds.xml
에 데이터 소스를 추가하십시오 src/test/resources/META-INF/test-persistence.xml
은 다음과 같습니다arquillian, wildfly가 mysql에 데이터 소스를 변경하지 못함 - 오류가 누락되었거나 충족되지 않음
<datasources xmlns="http://www.jboss.org/ironjacamar/schema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">
<datasource jndi-name="java:jboss/datasources/moritzTimetrackerTestDSmysql"
pool-name="moritzTimetracker-test" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/moritztimetracker</connection-url>
<driver>mysql-connector-java-5.1.33-bin.jar</driver>
<security>
<user-name>user</user-name>
<password>pass</password>
</security>
</datasource>
을 :
내가 테스트를 실행하는 경우<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="primary">
<jta-data-source>java:jboss/datasources/moritzTimetrackerTestDSmysql</jta-data-source>
<properties>
<!-- Properties for Hibernate -->
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="hibernate.show_sql" value="false" />
</properties>
</persistence-unit>
</persistence>
하지만 난 얻을 예외 :
org.jboss.arquillian.container.spi.client.container.DeploymentException: Cannot deploy: test.war
...
Caused by: java.lang.Exception: {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.data-source.java:jboss/datasources/moritzTimetrackerTestDSmysql is missing [jboss.jdbc-driver.mysql-connector-java-5_1_33-bin_jar]"]}
로그에 다음과 같이 쓰여 있습니다 :
JBAS014775: New missing/unsatisfied dependencies:
service jboss.data-source.java:jboss/datasources/moritzTimetrackerTestDSmysql (missing) dependents: [service jboss.data-source.reference-factory.java:jboss/datasources/moritzTimetrackerTestDSmysql]
service jboss.data-source.reference-factory.java:jboss/datasources/moritzTimetrackerTestDSmysql (missing) dependents: [service jboss.naming.context.java.jboss.datasources.moritzTimetrackerTestDSmysql]
service jboss.jdbc-driver.mysql-connector-java-5_1_33-bin_jar (missing) dependents: [service jboss.data-source.java:jboss/datasources/moritzTimetrackerTestDSmysql]
service jboss.persistenceunit."test.war#primary".__FIRST_PHASE__ (missing) dependents: [service jboss.deployment.unit."test.war".POST_MODULE]
mysql을 데이터 소스로 올바르게 설정하는 방법은 무엇입니까?