2016-09-26 10 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

どのようにBeanを設定していますか?あなたはそのクラスを見せてもらえますか?私はあなたが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

そして生成された(コピーされた)アプリケーションのプロパティファイルがターゲットディレクトリに置き換えられません申し訳ありませんが、私は知らない。 –

関連する問題