SEワンタンの独学備忘録

独学した内容や資格試験に対する取り組みの備忘録

【Spring】EclipseでSpring Frameworkを利用してみる

Spring MVC学習のためにちょっと入れる機会があったので

原則以下リンク先のチュートリアルの手順通りに進めることを目指す。某TERASOLUNAってやつです。そのための準備。
他のプロジェクトを扱う場合はもちろん適宜変えないといけない場所があるので注意。
途中まで古いバージョンでやろうとしてうまくいかなったのでそれも注意。

TERASOLUNA Server Framework for Java (5.x) Development Guideline — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.5.1.RELEASE documentation
11.1. チュートリアル(Todoアプリケーション) — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.5.1.RELEASE documentation


環境構築

Spring Tool Suiteプラグインのインストール

マーケットプレースを開いて

f:id:wantanBlog:20190804173413p:plain

STS(Spring Tool Suite)で検索する

f:id:wantanBlog:20190804173455p:plain


もうインストール済みでした。インストールされていない場合はここからインストールすれば大丈夫だと思います。
プレアデスをインストールしたのですでにプラグインが導入済みだったようです。
プレアデスのインストールは以下の記事でやった通りです。

www.wantanblog.com

MavenのWindowsへのインストール

Mavenとはソフトウェアプロジェクト管理ツールです。
以下をさらっと確認しました。
1. Maven とは | TECHSCORE(テックスコア)

コマンドプロンプトから以下のコマンドを実行しろと言われてましたが実行できなかったのでWindowsにインストールするところから。

mvn archetype:generate


★Mavenのダウンロード

以下のサイトからダウンロードする。
https://maven.apache.org/download.cgi

f:id:wantanBlog:20190804175225p:plain

とりあえず任意の場所にダウンロード。

私の場合は「C:\」直下に展開しました。

f:id:wantanBlog:20190804175626p:plain

★環境変数の設定

システム環境変数のpathに以下を追加する。
展開場所やバージョンは自身のものに修正すること。

C:\apache-maven-3.6.1\bin

f:id:wantanBlog:20190804180848p:plain


★Mavenの動作確認

コマンドプロンプトを開いて以下のコマンドを実行。

mvn -v

f:id:wantanBlog:20190804181134p:plain


JDKが入ってなかった。。。入ってればここでバージョンが表示されて完了です。

JDKのインストール


順序が前後して若干ぐだっているがJDKのインストールを実行する。

★JDKインストール

Oracle社の公式HPからJDKダウンロード
Java SE - Downloads | Oracle Technology Network | Oracle

特に理由がなければ最新版で。

追記:影響があるのか正直分かっていませんが、エラーが多発したため、私はTomcatのjavaのバージョンに合わせて入れなおしました。
入れなおしたのはJDK-11 取得サイトは以下
OpenJDK: Download and install


f:id:wantanBlog:20190804182546p:plain

同意にチェックをいれてからダウンロードする。
私の場合はWindows版のexeファイルをダウンロードしてそのまま実行した。

f:id:wantanBlog:20190804182842p:plain

exeファイルが実行できたら指示に従って進めていく。基本的にはデフォルト設定のまま進めていけばいいだろう。

f:id:wantanBlog:20190804183233p:plain


★環境変数の設定

pathに追加を行う。インストールしたJDKのbinを指定すればよい。
私の場合は以下の通り。

C:\Program Files\Java\jdk-12.0.2\bin

f:id:wantanBlog:20190804183621p:plain

★JDK動作確認

コマンドプロンプトを開き。javaのバージョン確認コマンドを実行する。

java -version

バージョンが表示されれば成功。
f:id:wantanBlog:20190804183843p:plain


成功しているようなのでついでにMavenの動作確認も行う。
今後は大丈夫そうです。
f:id:wantanBlog:20190804184245p:plain

Eclipse側のMaven設定

EclipseのプラグインMavenの設定を行っておきます。
どう影響してくるのかはやりながら確認していきます。

f:id:wantanBlog:20190804185221p:plain

初期設定だと赤枠部分が設定されていなかったのでチェックを入れて適用。

f:id:wantanBlog:20190804185308p:plain

プロジェクトの作成

ブランクプロジェクトの作成@Maven

WindowsにインストールしたMavenにブランクプロジェクトを作成します。

コマンドプロンプトから以下のコマンドを実行。
コマンドラインを使用して対話形式でプロジェクトを作成するコマンドみたいですね。

今回は「データベースを使用せずjava.util.Mapを使ったインメモリ実装のRepositoryImpl用のプロジェクトを作成する」という方式を採用するため、
以下のコマンドをコマンドプロンプトから実行していきます。

※私はチュートリアル用のコマンドを使用していますので自分がやりたいようにもちろん変えてください。

mvn archetype:generate -B^
 -DarchetypeGroupId=org.terasoluna.gfw.blank^
 -DarchetypeArtifactId=terasoluna-gfw-web-blank-archetype^
 -DarchetypeVersion=5.5.1.RELEASE^
 -DgroupId=com.example.todo^
 -DartifactId=todo^
 -Dversion=1.0.0-SNAPSHOT


処理が実行されたこの表示になれば成功。

f:id:wantanBlog:20190804234810p:plain

またプロジェクト作成時に作成されるフォルダ(以下、ソースフォルダ)は以下のパスにできていました。
Windowsログインユーザの直下です。

追記:カレントディレクトリに作成されるようです。なので、コマンドプロンプトでC:\に移動し実行すればC直下にできます。

C:\Users\[ユーザ名]\[DartifactId]

例)(私の場合)

C:\Users\wanta\todo

「pom.xml」が存在していることだけ確かめておきます。

Eclipseプロジェクトへの変換@Maven

Maven側でEclipseプロジェクトへの変換は不要と書いてある記事などもありましたが、私はここでつまづきました。
後述しますがこの工程を飛ばしてEclipseでインポートを行うとエラーがめっちゃでました。100オーバーです。

エラー原因を探りながらだったので、証跡が残ってないのですが以下手順です。

コマンドプロンプト上でソースフォルダに移動する。

上記の例では以下の通り。

cd C:\Users\wanta\todo

移動後、以下のコマンドを実行します。

mvn eclipse:eclipse

BUILD SUCCSESS が表示されるまで待つ。

f:id:wantanBlog:20190807003715p:plain

これで準備OK!

プロジェクトのインポート

Mavenに作成したプロジェクトをEclipseにインポートします。
果たしてうまくできるのか?

ファイル>インポート を選択

f:id:wantanBlog:20190804211010p:plain

既存のMavenプロジェクトを選択して次へ。

f:id:wantanBlog:20190805222144p:plain

ルートディレクトリに先ほど作成されてフォルダを指定する。
pom.xmlが表示されていることを確認する。⇒完了。

f:id:wantanBlog:20190805222721p:plain

プロジェクトが作成されると思うが、インポートが完了するまでじっと待ちましょう。

f:id:wantanBlog:20190807004242p:plain

構成的には問題なさそうなのでとりあえずOK!
警告が大量にでていますが、問題になるまで一旦無視します。(悪い習慣

プロジェクトの動作確認

私が使用したプロジェクトの場合は「Hello world」のページが用意されていたのでそのまま動作確認に入ります。

・サーバの作成
(別の方法もあるんだと思いますがとりあえず知っている方法で)

パッケージエクスプローラ上で右クリック⇒新規>その他を選択

f:id:wantanBlog:20190807004839p:plain

サーバを選択。

f:id:wantanBlog:20190807005407p:plain

任意のTomcatのバージョンを選択。
私の場合は9.0

f:id:wantanBlog:20190807005517p:plain

対象のプロジェクトを構成済みに追加しておく。⇒完了。

f:id:wantanBlog:20190807005705p:plain

・サーバの起動

作成したサーバを任意の方法で起動する。

f:id:wantanBlog:20190807005942p:plain


起動したらブラウザ等で当該のURLにアクセス。
私の場合は以下
http://localhost:8080/todo/

作成(作成済み)の画面が表示される

f:id:wantanBlog:20190807010236p:plain

いやったー!!!!!!!本来の本題に入ってないのにこの達成感。。
途中エラーが多くてやってることの割にすごーく時間がかかりました。多分有識者がやれば小一時間

これで後はやりたい放題。

EclipseでのMavaenプロジェクトインポートの失敗例

EclipseでのMavenプロジェクトのインポート時にエラーが多発しました。
行った対処方法を残しておきます。もちろんうまくいった場合はやる必要がないです。

当時の私の感想⇒「完了したかと思ったら123個のエラーって。。。これ使い物にならないのでは???」

f:id:wantanBlog:20190805223502p:plain

f:id:wantanBlog:20190805224112p:plain

エラー例
javax.servlet.http.httpservlet が java ビルド・パスで見つかりませんでした
httpservletrequestを型に解決できません
Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from/to central (http://repo.maven.apache.org/maven2): repo.maven.apache.org

などなど。。。全部はメモしきれていませんでした。
全体的にはjarファイルの配置とか、ソースがうまく読み込めていないようなエラーが多かったです。

エラー対応のためにやったこと

①プロジェクトのリフレッシュ

プロジェクトの右クリックし、リフレッシュ。
 ⇒効果なし

②Eclipse再起動

お次はEclipseの再起動。
 ⇒効果なし

③Mavenプロジェクトの更新

プロジェクトの右クリックし、Maven>プロジェクトの更新
 ⇒効果なし

④JDKのバージョン変更とEclipse用プロジェクトへの変換

結果的にはこれが効果ありました。

一旦、関連ファイルを削除して入れなおしています。削除以外の具体的な作業は上記の説明手順通りです。

但し、どっちの対応がどれほど効果があったのかいまいちわかっていないです。そこを検証する気力はありませんでした。
※個人的には「Eclipse用プロジェクトへの変換」がきいたような気がしていますが。。

1.Eclipse上のプロジェクトを削除

2.ソースフォルダの削除
私の場合は「C:\Users\wanta\todo」

3.「.m2」フォルダの削除
私の場合は「C:\Users\wanta\.m2」

4.JDKのバージョンを12⇒11に入れ直し(pathが通ればよい)

5.Maven上のプロジェクト作成コマンドの打ち直し

6.Eclipse用プロジェクトへの変換コマンドの実行

7.Eclipse上でプロジェクトインポートのやり直し

エラーがでない!!!

歓喜(*´ω`*)


SpringとかMavenとか初学なので、どのファイルがなかったとか記述足りなかったとか配置がおかしかったとか根本的な原因は分かりませんが困っている方の助けとなれば。




この後、構築した環境で本来行いたかった勉強をしますが、ブログに残すかは未定。

とりあえずチュートリアルが雑すぎる!!!!
全てが素人の人向けではない気がしますね