Home:ALL Converter>Micronaut Read data base connection string from file Groovy code

Micronaut Read data base connection string from file Groovy code

Ask Time:2019-02-26T10:28:34         Author:sfgroups

Json Formatter

Currently I am setting database connection information in the application.yaml file. For production deployment I need to read the database connection string from file.

in Gitter I got the tip to use micronaut.config.files value, but its not working.

I defined DB connection values in dbinfo.properties file, then update build.gradle file to like this.

run {
    environment('micronaut.environments','dev')
    environment 'micronaut.config.files', 'C:\\shared\\application.dev.properties'    
}

in application.yaml

dataSource:
  url: ${DBURL}
  dbCreate: create-update
  pooled: true
  jmxExport: true
  driverClassName: com.mysql.cj.jdbc.Driver
  dialect: org.hibernate.dialect.MySQL5InnoDBDialect
  username: ${DBUSER}
  password: ${DBPASSWORD}

when I run its giving below error message.

Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [org.grails.orm.hibernate.HibernateDatastore]: Could not resolve placeholder ${DBURL} in value: ${DBURL}

Is there an example code to read data base connection string from file Micronaut Groovy code?

Thanks

SR

Update: 2/26/19

I updated build.gradle file like this still same error.

run {
    systemProperty('micronaut.environments','dev')
    systemProperty('micronaut.config.files', 'C:\\shared\\application.dev.properties')
}

from Application.grooy file

class Application {
    static void main(String[] args) {      
        String filename=System.properties['micronaut.config.files']
        File f= new File(filename)
        if( f.exists()){
            println "File found: $filename"
            println f.text
        } else{
            println "file not found : $filename"
        }
        Micronaut.run(Application)
    }
}

Error message

19:31:49.925 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [dev]
19:31:50.700 [main] INFO  i.m.c.h.g.HibernateDatastoreFactory - Starting GORM for Hibernate
19:31:50.925 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [org.grails.orm.hibernate.HibernateDatastore] could not be loaded: Error instantiating bean of type [org.grails.orm.hibernate.HibernateDatastore]: Could not resolve placeholder ${DBURL} in value: ${DBURL}
io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [org.grails.orm.hibernate.HibernateDatastore] could not be loaded: Error instantiating bean of type [org.grails.orm.hibernate.HibernateDatastore]: Could not resolve placeholder ${DBURL} in value: ${DBURL}
    at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1040)
    at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:201)
    at io.micronaut.context.DefaultBeanContext.readAllBeanDefinitionClasses(DefaultBeanContext.java:2034)
    at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:156)
    at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:143)
    at io.micronaut.runtime.Micronaut.start(Micronaut.java:67)
    at io.micronaut.runtime.Micronaut.run(Micronaut.java:274)
    at io.micronaut.runtime.Micronaut.run(Micronaut.java:260)
    at webapp.Application.main(Application.groovy:30)
Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [org.grails.orm.hibernate.HibernateDatastore]: Could not resolve placeholder ${DBURL} in value: ${DBURL}
    at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1335)
    at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:1902)
    at io.micronaut.context.DefaultBeanContext.loadContextScopeBean(DefaultBeanContext.java:1543)
    at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1038)
    ... 8 common frames omitted
Caused by: io.micronaut.context.exceptions.ConfigurationException: Could not resolve placeholder ${DBURL} in value: ${DBURL}

Author:sfgroups,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/54877565/micronaut-read-data-base-connection-string-from-file-groovy-code
yy