В конфигурации SpringBoot JPA недоступен бин с именемactionManager - PullRequest
0 голосов
/ 09 февраля 2020

Согласно baeldung здесь

Если мы используем проект Spring Boot и имеем зависимости spring-data- * или spring-tx> от classpath, тогда управление транзакциями будет включено по умолчанию. "

Однако у меня есть эта ошибка:

org.springframework.messaging.MessageHandlingException: ошибка произошла во время обработки сообщения в 'MethodInvokingMessageProcessor' [org.springframework.integration.handler. MethodInvokingMessageProcessor@788f2bfc]; вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: не доступен ни один именованный компонент «databaseManager»: не найден ни один соответствующий компонент TransactionManager - не найден ни один из компонентов TransactionManager для квалификатора квалификатора для квалификатора совпадение квалификатора и имя бина!

с этими зависимостями:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-artemis</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-integration</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
    </dependency>
    <dependency>
        <groupId>com.indra.icens</groupId>
        <artifactId>ic-license</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.jms</groupId>
        <artifactId>javax.jms-api</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-jms</artifactId>
    </dependency>
    <dependency>
        <groupId>com.ibm.mq</groupId>
        <artifactId>mq</artifactId>
    </dependency>
    <dependency>
        <groupId>com.ibm.mq</groupId>
        <artifactId>mqjms</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.resource</groupId>
        <artifactId>connector</artifactId>
    </dependency>
    <dependency>
        <groupId>com.indra.icens.srom</groupId>
        <artifactId>ic_int_srom_common</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.1-api</artifactId>
    </dependency>
</dependencies>

application.properties:

spring.datasource.url=jdbc:postgresql://xxx/yyy
spring.datasource.username=asdasd
spring.datasource.password=werwer
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL95Dialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
spring.jpa.show-sql=false

ServiceConfig. java

@EnableJms
@Configuration
@ImportResource({
"classpath:/META-INF/spring/integration/main-config.xml"
})
@EnableJpaRepositories("com.nbi.conn.repository")
@EntityScan("com.nbi.conn.entities")
public class ServiceConfig {
}

что не так?, Чего мне не хватает в моем SpringBoot Config?

Заранее спасибо за помощь

1 Ответ

1 голос
/ 10 февраля 2020

Вы пытались добавить bean-компонент "TransactionsManager" в свою конфигурацию, например,

@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
    JpaTransactionManager transactionManager = new JpaTransactionManager();
    transactionManager.setEntityManagerFactory(emf);

    return transactionManager;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...