SpringBootにて日記投稿サイトを作り、それをHerokuへデプロイすることには成功したのですが
起動に失敗しました。
postgresqlのドライバのロードに失敗しているようなのですが、解決法がわかりません。
情報が不足しているようでしたら追加しますのでよろしくお願いします。
発生している問題・エラーメッセージ
2021-07-10T16:06:07.388965+00:00 app[web.1]: 2021-07-10T16:06:07.388966+00:00 app[web.1]: *************************** 2021-07-10T16:06:07.388966+00:00 app[web.1]: APPLICATION FAILED TO START 2021-07-10T16:06:07.388967+00:00 app[web.1]: *************************** 2021-07-10T16:06:07.388967+00:00 app[web.1]: 2021-07-10T16:06:07.388967+00:00 app[web.1]: Description: 2021-07-10T16:06:07.388968+00:00 app[web.1]: 2021-07-10T16:06:07.388971+00:00 app[web.1]: Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource: 2021-07-10T16:06:07.388971+00:00 app[web.1]: 2021-07-10T16:06:07.388972+00:00 app[web.1]: Property: driver-class-name 2021-07-10T16:06:07.388972+00:00 app[web.1]: Value: org.postgresql.Driver 2021-07-10T16:06:07.388976+00:00 app[web.1]: Origin: "driverClassName" from property source "source" 2021-07-10T16:06:07.388977+00:00 app[web.1]: Reason: Failed to load driver class org.postgresql.Driver in either of HikariConfig class loader or Thread context classloader 2021-07-10T16:06:07.388978+00:00 app[web.1]: 2021-07-10T16:06:07.388978+00:00 app[web.1]: Action: 2021-07-10T16:06:07.388978+00:00 app[web.1]: 2021-07-10T16:06:07.388979+00:00 app[web.1]: Update your application's configuration 2021-07-10T16:06:07.388979+00:00 app[web.1]: 2021-07-10T16:06:07.476088+00:00 heroku[web.1]: Process exited with status 1 2021-07-10T16:06:07.547805+00:00 heroku[web.1]: State changed from starting to crashed
pom.xml
省略 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>startbootstrap-sb-admin-2</artifactId> <version>4.1.3</version> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>webjars-locator</artifactId> <version>0.40</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> 省略
試したこと
こちらをpomに追加してみたところ、
Overriding managed version 42.2.19 for postgresql
と注意されてしまいました。
2021/07/11 回答をもとに解決済み
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.4-1206-jdbc42</version> </dependency>
補足情報
os:windows 10
関連ファイル
application.properties
spring.datasource.url=${JDBC_DATABASE_URL} spring.datasource.username=${JDBC_DATABASE_USERNAME} spring.datasource.password=${JDBC_DATABASE_PASSWORD} spring.jpa.database=POSTGRESQL spring.jpa.hibernate.ddl-auto=update # MYSQL ローカル環境はこれで動いてました。 #spring.datasource.driver-class-name=com.mysql.jdbc.Driver #spring.datasource.url=jdbc:mysql://localhost/user_master?useSSL=false&useUnicode=true&characterEncoding=utf8 #spring.datasource.username=sample_user #spring.datasource.password=sample_pass #spring.jpa.database=MYSQL #spring.jpa.hibernate.ddl-auto=update #spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect #spring.jpa.show-sql=true #spring.jpa.properties.hibernate.format_sql=true
Procfile
web: java -jar target/portfolio-0.0.1-SNAPSHOT.jar -Dserver.port=$PORT
system.properties
java.runtime.version=11
追加情報 2021/07/11
回答を参考にこちらをpom.xmlに追加したところエラーが変わりました!
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <scope>runtime</scope> </dependency>
pom変更後エラー
テーブル作成時にエラーが起きているようです。
これはEntityクラスを修正してテーブルの自動生成動作を変更するべきなのでしょうか?
2021/07/11 解決済み
userテーブルがPSQLの予約語だったことと、その中のカラムにBLOB型を使用していたため起こったエラーでした。
回答1件
あなたの回答
tips
プレビュー