2017-08-11 1 views
0

Je rencontre l'erreur suivante uniquement lors de l'exécution de la classe Test. Cela se produit uniquement avec Spring Boot 2 (M3 pour l'instant), tandis que Spring Boot 1.5.3 est OK. MyBatis 1.3.1-SNAPSHOT ne semble pas disponible/publié, donc j'utilise 1.3.0.Spring Boot 2 M3 - MyBatis 1.3.0 - Test - La propriété 'sqlSessionFactory' ou 'sqlSessionTemplate' est requise

java.lang.IllegalArgumentException: 
Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required 

En outre, aucun problème jusqu'à présent lors du lancement de Tomcat externe avec JNDI: cartographes et les haricots sont bien chargés.

build.gradle

compile("org.mybatis.spring.boot:mybatis-spring-boot-starter:${myBatisBootVersion}") 
compile('org.springframework.boot:spring-boot-starter-web') { 
    exclude module: "spring-boot-starter-tomcat" 
} 
compile("mysql:mysql-connector-java:6.0.6") 
compile("org.springframework.boot:spring-boot-starter-log4j2:${springBootVersion}") 

compileOnly("javax.servlet:javax.servlet-api:3.1.0") 

testCompile("javax.servlet:javax.servlet-api:3.1.0") 
testCompile('org.springframework.boot:spring-boot-starter-test') 
testCompile("org.mybatis.spring.boot:mybatis-spring-boot-starter-test:1.3.0") 

Application.java

@Configuration 
@SpringBootApplication(exclude = JmxAutoConfiguration.class) 
@MapperScan("eu.davidea.avocadoserver.persistence.mybatis.mappers") 
public class Application extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(Application.class); 
    } 

    public static void main(final String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

} 

application.properties

spring.profiles.active=test 

application-local.properties (repris au déploiement local)

spring.datasource.jndi-name='java:comp/env/jdbc/avocadoDB' 

ApplicationTests.java

@ActiveProfiles("test") 
@RunWith(SpringRunner.class) 
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) 
public class ApplicationTests { 

    @Test 
    public void contextLoads() { 
    } 

} 

application test.poperties (lors du lancement de ramassées tests)

spring.datasource.url=jdbc:mysql://... 
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 
spring.datasource.username=... 
spring.datasource.password=... 

Qu'est-ce qui ne va pas dans cette configuration ation pour le passage à Spring Boot 2?

Le projet sera bientôt disponible dans Github.

Répondre

0

J'ai trouvé une solution moi-même:

Depuis que j'utilisais Tomcat externe, je retiré de la classpath la piscine conn Hikari car non utilisé, mais pendant la phase de test JUnit un pool de connexion JDBC ne manquait, alors je l'ai arrière.