2016-09-26 4 views
2

저는 스프링 부트 및 프로젝트 프로파일을 사용하고 있습니다. 내 maven 구성 (pom.xml)에 프로필을 추가하고 application.propertie에서 프로필 속성을 가져 오려고했지만 예외가 발생합니다.

여기

내 pom.xml 파일의 일부 :

<build> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
     </resources> 
     <sourceDirectory>src/main/java</sourceDirectory> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <mainClass>com.x.server.MainApplication</mainClass> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <profiles> 
      <profile> 
       <id>profile-development</id> 
       <properties> 
        <environment>dev</environment> 
        <db.username>me</db.username> 
        <db.password>testme</db.password> 
        <db.url>jdbc:mysql://localhost:3306/testdb</db.url> 
       </properties> 
       <activation> 
        <activeByDefault>true</activeByDefault> 
        <property> 
         <name>environment</name> 
         <value>dev</value> 
        </property> 
       </activation> 
      </profile> 

응용 프로그램 속성 :

spring.datasource.driver-class-name=com.mysql.jdbc.Driver 
spring.datasource.url=${db.url} 
spring.datasource.username=${db.username} 
spring.datasource.password=${db.password} 
spring.datasource.testOnBorrow=true 
spring.datasource.validationQuery=SELECT 1 
spring.jpa.show-sql=true 
spring.jpa.hibernate.ddl-auto=update 
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect 

그러나 나는이 예외를 얻을 :

Caused by: java.sql.SQLException: Driver:[email protected] returned null for URL:${db.url} 
     at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:326) 
     at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:200) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:708) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:642) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:464) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:141) 
     at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:115) 
     at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:102) 
     at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:126) 
     at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139) 
     at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380) 
     at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:228) 
     ... 45 more 
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

누군가 어떤 아이디어가?

+1

빈 구성 방법은 무엇입니까? 그 수업을 보여줄 수 있습니까? PropertySource가 누락 된 것 같습니다. –

+0

나는 bean에서 작동하지 않지만 메인 클래스에서 @EnableAutoConfiguration을 사용한다. – emoleumassi

+0

확인. '$ {db.url} '과 다른 유사한 속성은 어디에 정의되어 있습니까? –

답변

0

profile-development (아마도) 개발 빌드의 경우 db.url을 정의하십시오. 그러나이 오류는 표현 ${db.url}을 해결하지 못하는 것 같습니다.

가장 일반적인 오류는 빌드가 올바른 프로필로 완료되지 않았거나 실제로 다른 (기본) 프로필에 db.url이 누락되었다는 것입니다.

+0

dev-profile은 기본 프로필이며 db.url을가집니다. 내가 빌드 할 때, 나는 환경과 함께이 명령을 호출한다 : mvn clean spring-boot : run -Denvironment = dev 그리고 같은 예외가 발생한다 – emoleumassi

+0

그리고 생성 된 (복사 된) 응용 프로그램 속성 파일이 대상 디렉토리에 대체되지 않는다. 미안하지만 몰라. –