Using h2db in prod profile breaks after upgrade to jhipster 5.1.0 (was runable in 4.x)
Error message:
APPLICATION FAILED TO START
Description:
Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:
Property: driverclassname Value: org.h2.Driver Origin: "driverClassName" from property source "source" Reason: Failed to load driver class org.h2.Driver in either of HikariConfig class loader or Thread context classloaderAction:
Update your application's configuration
I don't really have the need for a db and so using h2db as a file on my prod system was suitable. After upgrading my application from 4.x to 5.1.0 the prod package breaks.
datasource:
        type: com.zaxxer.hikari.HikariDataSource
        url: jdbc:h2:file:.target/h2db/db/test;DB_CLOSE_DELAY=-1
        username: ab
        password:c
    h2:
        console:
            enabled: false
    jpa:
        database-platform: io.github.jhipster.domain.util.FixedH2Dialect
        database: H2
        show-sql: true
        properties:
            hibernate.id.new_generator_mappings: true
            hibernate.cache.use_second_level_cache: false
            hibernate.cache.use_query_cache: false
            hibernate.generate_statistics: true
    liquibase:
        contexts: prod
##### **JHipster configuration**
Welcome to the JHipster Information Sub-Generator
##### **JHipster Version(s)**
/Gitlab/test
└── [email protected]
##### **JHipster configuration, a `.yo-rc.json` file generated in the root folder**
<details>
<summary>.yo-rc.json file</summary>
<pre>
{
  "generator-jhipster": {
    "promptValues": {
      "packageName": "com.biao.bascha"
    },
    "jhipsterVersion": "5.1.0",
    "applicationType": "monolith",
    "baseName": "bascha",
    "packageName": "com.biao.bascha",
    "packageFolder": "com/biao/bascha",
    "serverPort": "8080",
    "authenticationType": "jwt",
    "cacheProvider": "no",
    "websocket": false,
    "databaseType": "sql",
    "devDatabaseType": "h2Disk",
    "prodDatabaseType": "mariadb",
    "searchEngine": false,
    "messageBroker": false,
    "serviceDiscoveryType": false,
    "buildTool": "maven",
    "enableSwaggerCodegen": false,
    "jwtSecretKey": "replaced-by-jhipster-info",
    "clientFramework": "angularX",
    "useSass": true,
    "clientPackageManager": "yarn",
    "testFrameworks": [],
    "jhiPrefix": "jhi",
    "enableTranslation": false
  }
}
</pre>
</details>
##### **JDL for the Entity configuration(s) `entityName.json` files generated in the `.jhipster` directory**
<details>
<summary>JDL entity definitions</summary>
<pre>
</pre>
</details>
##### **Environment and Tools**
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
git version 2.14.3
node: v8.11.3
npm: 6.2.0
yeoman: 2.0.1
yarn: 1.7.0
entityName.json files generated in the .jhipster directory
MacOS
We don't support H2 in prod profile, so there's no guarantee this should work from our side.
But yes I already saw this issue, I think the driver was left by mistake in 4.x, and now we remove it in 5.x. That's supposed to be an improvement, as people normally don't need this :-)
You should just put the driver back in your pom.xml.
And of course I don't recommend at all to do this in production!
Thank you mate 👍
put the driver back in and now it works again
Awesome :-)
Can you tell me how you added that driver into the pom.xml file?
@napindc sure
Just add the driver to the prod profile in your pom.xml
...
<profile>
            <id>prod</id>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-undertow</artifactId>
                </dependency>
                <dependency>
                    <groupId>com.h2database</groupId>
                    <artifactId>h2</artifactId>
                </dependency>
            </dependencies>
....
Thanks so much! @Simsal
Most helpful comment
@napindc sure
Just add the driver to the prod profile in your pom.xml