2016-08-28 3 views
0

Как создать источник данных для облака в MySQL при работе на Bluemix? Если есть примеры Java-конфигурации, пожалуйста, поделитесь. Как создать Hibernate для создания таблиц и почему я могу получить эту ошибку?Как настроить облачный источник данных для MySQL на Bluemix?

Ошибка при создании компонент с именем «EntityManagerFactory» определено в com.covenant.app.config.root.DatabaseConfig: Неудовлетворенный зависимость выражается через аргумент конструктора с индексом 0 типа [org.springframework.jdbc.datasource .DriverManagerDataSource]:: Нет квалификационный компонент типа [org.springframework.jdbc.datasource.DriverManagerDataSource] найден для зависимости: ожидается как минимум 1 бит, который квалифицируется как автоузел кандидат на эту зависимость. Аннотации зависимостей: {}; вложенная исключение не является org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет квалификационная рожкового типа [org.springframework.jdbc.datasource.DriverManagerDataSource] найдено для зависимости: ожидается, по крайней мере, один боб, который квалифицируется как autowire кандидата на эта зависимость. Зависимость от аннотаций: {}

Моя база данных Config класса

@Configuration 
@Profile("cloud") 
@EnableTransactionManagement 
public class CloudDatabaseConfig extends AbstractCloudConfig { 

     @Bean 
      public DataSource inventoryDataSource() { 
       return connectionFactory().dataSource("mysql"); 
      } 
     @Bean(name = "namingStrategy") 
     public ImprovedNamingStrategy getNamingStrategy(){ 

      ImprovedNamingStrategy namingStrategy = new CDCustomNamingStrategy(); 
      return namingStrategy; 
     } 
     @Bean(name="dataSource") 
     public BasicDataSource dataSource() throws PropertyVetoException { 
      BasicDataSource bean = new BasicDataSource(); 
      bean.setDriverClassName("com.mysql.jdbc.Driver"); 
      bean.setUrl("jdbc:mysql://localhost:3306/bluemix?useUnicode=true&characterEncoding=UTF-8"); 
      bean.setUsername("root"); 
      bean.setPassword("root"); 
      return bean; 
     } 
     @Bean(name = "entityManagerFactory") 
     public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, ImprovedNamingStrategy ins) { 

      LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); 
      entityManagerFactoryBean.setDataSource(dataSource); 
      entityManagerFactoryBean.setPackagesToScan(new String[]{"com.covenant.app.model"}); 
      entityManagerFactoryBean.setLoadTimeWeaver(new InstrumentationLoadTimeWeaver()); 
      entityManagerFactoryBean.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); 


      Map<String, Object> jpaProperties = new HashMap<String, Object>(); 
      jpaProperties.put("database", "mysql"); 
      jpaProperties.put("hibernate.hbm2ddl.auto", "update"); 
      jpaProperties.put("hibernate.show_sql", "true"); 
      jpaProperties.put("hibernate.format_sql", "true"); 
      jpaProperties.put("hibernate.use_sql_comments", "true"); 
      jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); 
      jpaProperties.put("hibernate.ejb.naming_strategy", ins); 
      entityManagerFactoryBean.setJpaPropertyMap(jpaProperties); 

      return entityManagerFactoryBean; 
     } 

    } 

Мой manifest.yml файл на Bluemix:

--- 
applications: 
    - name: lordthankyou 
    path: target/ideals.war 
    services: 
     - mysql 
env: 
    SPRING_PROFILES_ACTIVE: cloud 

я получаю следующие ошибки:

Ошибка создания боб с именем «userService»: инъекция автоувеличиваемого зависимости не удались; вложенное исключение: org.springframework.beans.factory.BeanCreationException: не удалось поле autowire: private com.covenant.app.dao.UserRepository com.covenant.app.services.UserService.userRepository; вложенное исключение is org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'userRepository': Injection of persistence зависимостей не удалось; вложенное исключение org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет квалификационных рожкового типа [javax.persistence.EntityManagerFactory] является определено

ответ

0

Наконец я получил это работаю, я просто добавил переменное окружение, чтобы активировать облако профиль в manifest.yml и удаленный extends AbstractCloudConfig, поскольку он также искал mongodb. После этих изменений он начал работать, и теперь я могу запустить Spring mvc на синем миксе.