STS4ぶっ壊れ。再構築。トラブル。

プログラミング
スポンサーリンク

ある日開発しようとSTSを起動したら、起動できなくなっていたんですよ

なんかのアプデ等で、プラグインがぶっ壊れたらしいんですが、
これを特定して直すくらいなら、入れなおしたほうが早いよーなんて書き込みを見つけたので、
素直に入れなおすことにします

MyBatis関連のエラー

が、、、

まずMyBatis関連でエラーだらけなわけです。。。

どうやら、STSのマーケットプレイスからインストールした、MyBatisGeneratorのバージョンが上がったことにより、下位互換のない変更が起こりコンパイルエラーになったようです。

ちなみにGeneratorは、1.4.0 から 1.4.2 へ。

一番の原因は、javaxパッケージがjakartaパッケージへ移動されたことによる、Class Not Found エラーです。

ということで、jakartaパッケージをpom.xmlに追加っと。

MyBatisGeneratorで生成後のソースでコンパイルエラー

。。。。。まだいろいろエラー。

そもそもjakartaパッケージを別途入れるくらいなら、Spring-Bootも更新しろやと。

仕方ない。
Spring-Bootも対応するバージョンに上げましょう。

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>3.0.8</version>
	<relativePath/>
</parent>

JDKのバージョン

これでSpring-Bootのバージョンが上がりましたが、対応しているJavaも17になっているようで、
こっちも更新する必要が。。。

とりあえずJDK17をインストールしまして、こっちもpomも上げておきましょ

<properties>
    <java.version>17</java.version>
</properties>

そんでもって、MyBatis関連はこんな感じ


<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>3.0.0</version>
</dependency>

<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.4.2</version>
</dependency>
		
<dependency>
    <groupId>org.mybatis.dynamic-sql</groupId>
    <artifactId>mybatis-dynamic-sql</artifactId>
    <version>1.5.0</version>
</dependency>

Java17にすると、プロジェクト側の設定も変えないとです。

これで起動!

なんかDBアクセスでエラーっぽい

・・・・・・・・・・・残念。。

なんか再起動したら起動できました(笑

RequestMappingのURL

と、ここまで起動できたのにまだ問題が・・・

今度は、APは起動しているのにIndexへアクセスできず。

どうやら、@RequestMappingを”/”にするとだめらしい。
ということで、@RequestMapping( value = “” ) に変更したらアクセスできました!

Thymeleafのfragment警告

起動はしたものの、ログにはThymeleafのlayout系で警告ログが・・・。

Spring-Boot 3より、fragmentの構文が厳密になったようで、今の書き方では将来的に削除されるとのこと。

Thymeleaf 3.1: What’s new and how to migrate - Thymeleaf
Deprecated unwrapped fragment expression
Hi While clicking on register button using thymeleaf 3.1 and spring6 i am getting the following error can someone help me out on this how to write in the new ve...

修正前:th:replace=”base::layout(~{::section})”
修正後:th:replace=”~{base::layout(~{::section})}”

JavaScript

それでもまだまだ・・・。どうにも、Javascriptが動いてない

そもそも、layout.htmlが適用できていないよう。
そのため、layout側で読み込んでいたJQueryが適用されずにJavascriptもエラーになると。。。

そして見つけたのが、layout:decorate=”~{layout/layout}”の構文。

まさに、Thymeleaf3にて変更された項目で、V2までは
 layout:decorator
でしたが、V3からは
 layout:decorate
に変わったらしいです。( ゚Д゚)ハァ?

もともと、「名前が誤解を招く」という理由からV2.0の時点で非推奨だったらしいですが、
V3でとうとう削除されました。。。

サーバーのお話。

一通り修正してCentOSへデプロイしたら、404でアクセスできませんでした。。。
どうやらSpring-Boot3系は、tomcat10以上らしい。。。

もう疲れたお

とりあえず、過去の自分の記録を見ながらこっちもアプデします

おわり

ここまでやってやっっっっっっと起動できましたよ。
もう本当疲れました(汗

今回は開発環境ぶっ壊れ問題でしたが、簡単にバージョンアップなんてやるもんじゃないね(-。-)y-゜゜゜

コメント

タイトルとURLをコピーしました