Trong dự án Java, tôi đang sử dụng Sprig Boot 1.5.3.RELEASE. Nó đang kết nối với hai cơ sở dữ liệu, tức là MongoDB và Microsoft SQLServer. Khi tôi chạy nó với spring-boot: chạy mục tiêu, nó hoạt động tốt. Tuy nhiên, khi tôi cố gắng chạy nó với gói mục tiêu sau đó bên dưới lỗi được báo cáo của trường hợp thử nghiệm mặc dù thực tế rằng những trường hợp thử nghiệm không được kết nối với cơ sở dữ liệu SQL Server:Không có loại đậu đủ điều kiện thuộc loại 'org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder' có sẵn
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1486)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:467)
.....
.....
MediationTest.java (lớp Java chứa trường hợp thử nghiệm tạo ra ở trên lỗi)
@RunWith(SpringRunner.class)
@DataMongoTest(excludeAutoConfiguration = EmbeddedMongoAutoConfiguration.class)
@SpringBootTest(classes = { Application.class })
public class MediationTest {
@Autowired
private SwiftFormat swiftFormat;
......................
......................
MsqlDbConfig.java
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "msqlEntityManagerFactory", transactionManagerRef = "msqlTransactionManager", basePackages = { "com.msql.data" })
public class MsqlDbConfig {
@Bean(name = "msqlDataSource")
@ConfigurationProperties(prefix = "msql.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "msqlEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean msqlEntityManagerFactory(
EntityManagerFactoryBuilder builder,
@Qualifier("msqlDataSource") DataSource dataSource) {
return builder.dataSource(dataSource)
.packages("com.utils.msql.info")
.persistenceUnit("msql").build();
}
@Bean(name = "msqlTransactionManager")
public PlatformTransactionManager msqlTransactionManager(
@Qualifier("msqlEntityManagerFactory") EntityManagerFactory msqlEntityManagerFactory) {
return new JpaTransactionManager(msqlEntityManagerFactory);
}
}
application.properties
spring.data.mongodb.uri=mongodb://dev-abc-123:27017/db
msql.datasource.url=jdbc:sqlserver://ABC-SQL14-WXX;databaseName=dev
msql.datasource.username=dev
msql.datasource.password=*****
msql.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
msql.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
spring.jpa.show-sql=true
Không có ngoại lệ nào khác trong nhật ký không? – galovics
Những thử nghiệm này có hoạt động khi bạn chạy chúng từ IDE của bạn không? – Ben