2017-08-11 107 views
0

我只在運行Test類時遇到以下錯誤。 這隻發生在Spring Boot 2(M3現在),而Spring Boot 1.5.3則可以。 MyBatis 1.3.1-SNAPSHOT似乎不可用/發佈,所以我使用1.3.0。Spring Boot 2 M3 - MyBatis 1.3.0 - 測試 - 屬性'sqlSessionFactory'或'sqlSessionTemplate'是必需的

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

此外,啓動外部的Tomcat沒有問題,到目前爲止當JNDI查找:映射器和bean被裝載的罰款。

的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(在本地部署拾起)

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() { 
    } 

} 

應用test.poperties(啓動測試時,拿起)

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

這個配置有什麼問題切換到Spring Boot 2時需要注意什麼?

項目將很快在Github上市。

回答

0

我找到了解決自己:

由於我使用外部Tomcat的,我從classpath刪除阿光康恩池,因爲沒有使用,但在JUnit測試階段的JDBC連接池失蹤了,所以我把它背部。

相關問題