2016-03-13 15 views
5

Đây là pom tôiKhông đậu vòng loại [javax.sql.DataSource] được định nghĩa

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.0.1.RELEASE</version> 
    </parent> 


    <dependencies> 
     <!-- Spring Boot --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
      <exclusions> 
      <exclusion> 
       <groupId>com.fasterxml.jackson.core</groupId> 
       <artifactId>jackson-databind</artifactId> 
     </exclusion> 
      </exclusions> 
     </dependency> 


     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.google.guava</groupId> 
      <artifactId>guava</artifactId> 
      <version>${guava.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-security</artifactId> 
     </dependency> 
    <dependency> 
     <groupId>org.apache.tomcat.embed</groupId> 
     <artifactId>tomcat-embed-jasper</artifactId> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
    </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <!-- Spring Boot Maven --> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Đây là lớp học chính của tôi

@Configuration 
@EnableAutoConfiguration 
@ComponentScan 
public class Application extends SpringBootServletInitializer { 

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

} 

Đây là ứng dụng của tôi. thuộc tính

#server.contextPath=/SpringBootExamples 
server.port=8888 
logging.file=F:/new-spring-boot/Test-Spring-Boot.log 

# spring security configuration 
security.user.name=admin 
security.user.password=admin1 
management.security.role=SUPERUSER 
spring.data.jpa.repositories.enabled=true 

spring.datasource.url= jdbc:mysql://localhost:3306/springbootdb 
spring.datasource.username=root 
spring.datasource.password=root 
spring.datasource.driver-class-name=com.mysql.jdbc.Driver 
spring.jpa.hibernate.ddl-auto=create-drop 

Đây là UserServiceImpl tôi

@Service 
public class UserServiceImpl implements UserService{ 

    @Autowired 
    private UserRepository userRepo; 


    @Override 
    @Transactional 
    public void saveUser(MyUserEntity user) { 
     userRepo.save(user); 
     //testTransaction(); 
    } 
} 

** Đây là UserRepository tôi **

@Repository 
public interface UserRepository extends CrudRepository<MyUserEntity, Long>{ 


} 

tôi đang nhận được dưới đây lỗi khi java -jar target/example-spring-boot-rest-1.0-SNAPSHOT.war

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.setFilterChainProxySecurityConfigurer(org.springframework.security.config.annotation.ObjectPostProcessor,java.util.List) throws java.lang.Exception; nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webSecurityConfig': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.security.core.userdetails.UserDetailsService javabeat.net.springboot.config.WebSecurityConfig.userDetailsService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySpringUserDetailsService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private final javabeat.net.springboot.service.UserService javabeat.net.springboot.service.MySpringUserDetailsService.userService; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userServiceImpl' defined in URL [jar:file:F:\new-spring-boot\target\example-spring-boot-rest-1.0-SNAPSHOT.war!/WEB-INF/classes!/javabeat/net/springboot/service/UserServiceImpl.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [javabeat.net.springboot.dao.UserRepository]: : Error creating bean with name 'userRepository': Cannot create inner bean '(inner bean)#188ad80b' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#188ad80b': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.entityManagerFactory(org.springframework.orm.jpa.JpaVendorAdapter)] threw exception; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] is defined; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Cannot create inner bean '(inner bean)#188ad80b' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#188ad80b': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.entityManagerFactory(org.springframework.orm.jpa.JpaVendorAdapter)] threw exception; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] is defined 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185) 
+1

Bạn đang sử dụng 'example-spring-boot-rest-1.0-SNAPSHOT.war', nơi đã khai báo bean' UserServiceImpl'. Bean này đang sử dụng bean 'EntitiyManager', lần lượt, đang sử dụng bean' DataSource'. Nhưng 'DataSource' bean không được định nghĩa. –

+0

Tôi không sử dụng EntityManager một cách rõ ràng trong ứng dụng của mình. Xem bài viết cập nhật của tôi – emilly

+1

Phiên bản khởi động của bạn khá lỗi thời '1.0.1.RELEASE'. Tôi đã có hành vi kỳ lạ sau đó một trong những phụ thuộc mùa xuân của tôi là từ phiên bản khác nhau. Bạn có thể cập nhật 'spring-boot 1.3.3' mới nhất không? –

Trả lời

2

tôi nâng cấp lên

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.3.RELEASE</version> 
    </parent> 

Nó hoạt động tốt. Nhưng nó thực sự lạ vì nó đã làm việc với phiên bản 1.0.1. cũng cho đến một giờ trước.

+1

Điều đó thực sự phổ biến. Có rất nhiều điều tuyệt vời với Spring Boot, nhưng tất cả các công cụ tự động ma thuật làm cho nó thực sự mong manh. Thực hiện thay đổi nhỏ nhất đối với cấu hình hoặc chú thích có thể làm cho tất cả mọi thứ bị rơi xuống. – BrianC

2

Tôi đã sử dụng bản phát hành 1.3.6 và sau đó thay đổi về 1.3.3. Nó làm việc cho tôi

Các vấn đề liên quan