オフィス狛 技術部 CTOの Taka-yamです。
あるJavaのプロジェクトでSpring Frameworkの脆弱性問題により
SpringBoot1.31から1.51へアップデートする必要がありました。
その際に、やはり思った通りにはいかず、いくつかハマった点がありましたので、
ここで情報共有します。
まず最初のエラーです。
ServletContext resource [/hoge] defined by 'spring.datasource.schema' does not exist
このエラーは「datasource.schemaが存在しない」と出ています。
どうやら Spring Boot1.5 から、デフォルトでDBの初期化処理を行おうとし、schema.sqlやdata.sqlというファイルをクラスパスのルートから探しに行くようです。
今ままではこのような処理を行っていなかったため、当然ファイルは存在せずエラーとなっていました。
対策としては、下記のプロパティをapplication.ymlに追加します。
spring:datasource:initialize: false
次は下記のエラーが出ました。
java.lang.ClassNotFoundException: org.springframework.session.hazelcast.HazelcastFlushMode
これはspring-sessionのバージョンを間違えており、2系のバージョンを指定していたため、
SpringBoot1.51では依存関係が解決できないことが原因でした。
バージョンを変更し、無事に解決できました。
最後に下記のエラーが出ました。
No Spring Session store is configured: set the 'spring.session.store-type'
これもSpringBoot1.5からの特徴でspring.session.store-typeを指定しないとエラーになるように変わりました。
今回は何も使用していないため、何も指定しないように設定します。
spring:session:store-type: none
以上でエラーが解決され、無事に動作も確認ができました。
計画的ではなく、突発的なアップデートの際には色々と調査が必要ですね。
Java , Spring Boot
0 件のコメント:
コメントを投稿