2017-01-18 12 views
1

プロジェクトのGroovy/Grailsの/ Gradleのである/キャメルルートYAML - groovy - env varは整数ではありませんか?

これは非常に合理的なようだ:

server: 
    port: ${PORT} 

しかし、私は得る:

java.lang.NumberFormatException: For input string: "${PORT}" 
    at org.grails.config.CodeGenConfig.convertToType(CodeGenConfig.groovy:191) 
    at org.grails.config.CodeGenConfig.getProperty(CodeGenConfig.groovy:264) 
    at grails.config.ConfigMap$getProperty.call(Unknown Source) 
    at run-app.run(run-app.groovy:31) 
    at org.grails.cli.profile.commands.script.GroovyScriptCommand.handle(GroovyScriptCommand.groovy:152) 
    at org.grails.cli.profile.AbstractProfile.handleCommand(AbstractProfile.groovy:452) 
    at org.grails.cli.GrailsCli.handleCommand(GrailsCli.groovy:373) 
    at org.grails.cli.GrailsCli$_handleCommandWithCancellationSupport_closure6.doCall(GrailsCli.groovy:464) 
    at org.grails.cli.GrailsCli$_handleCommandWithCancellationSupport_closure6.call(GrailsCli.groovy) 

文字列のenv VARSが問題と仕事を持っていませんちょうど良い。 検索時にint型にキャストする構文が見つかりません。

どのような考えですか? Grailsの/春の起動アプリで

+0

'$ PORT'の実際の値は何ですか?可能ならば、我々はまた、以下のようにポートのデフォルト値を提供することができ、例外のいずれかの種類を回避するためにも

、あなたは単にあなたのyml設定にenvvarを注入することができますか?エラーは、文字列 "$ {PORT}"が整数ではないことが明らかです。 – sebnukem

+0

私はintellijを使用しています。Grailsの下で実行コンフィギュレーションを編集するときに環境変数でPORTを8081に設定します。はい、$ {}パターンを使用している文字列であれば、他の変数を挿入することができます。より良いパターンはありますか? –

+0

これは有効なYAMLです(問題なく**引用符で囲まれていない文字列スカラー '$ {PORT} 'を持つことができます)。 – Anthon

答えて

0

、構成は以下のように短い手である場合:

server: 
    port: ${PORT} 

次いでアプリ--PORT=8090は、(例えば)アプリケーションの起動時にシステムのarg /環境プロパティとして提供されることを期待します。環境変数が指定されていることを確認してください。我々はまた、Grailsのアプリケーションでタスク設定の下に必要になりますapplication.ymlに環境変数の値を利用できるようにするに

bootRun { 
    systemProperties = System.properties 
} 

プレーンバニラ春ブーツのMavenは、上記のアプリでは必要ありません。

server: 
    port: ${PORT:8085} 
+0

java.lang.NumberFormatException:入力文字列の場合: "$ {PORT:8443}"同じエラーが発生します。解釈する必要があるものとしては読み込まれません。同じパターンを使用して、ファイル内に他のものがたくさんあるので、これは奇妙です。しかし、それらはすべてストリング値です。また、 'bootRun { systemProperties = System.properties}'を追加しても何も変更されません –

関連する問題