SAStrutsチュートリアルで404エラーが出る場合の対処


SAStrutsというのはSuper Agile Strutsの略で
Strutsを使った開発をスクリプト言語のように
「さくさく開発」ができるフレームワークらしい

http://sastruts.seasar.org/

んでStrutsというのはオープンソースフレームワークで
ほぼ全てのサーブレットコンテナで動くらしい

Struts詳細については以下参照

http://www.infoscience.co.jp/technical/struts/

まあなんというか...

php  : cakephp
ruby : rails
java : struts

みたいな感じなのかな

とりあえずjavaでサーバーをやるなら
必須スキルっぽかったので、
seasar2のSAStrutsをlocalにデプロイすることに

だがしかし...

![スクリーンショット 2016-07-31 19.31.30.png](https://qiita-image-store.s3.amazonaws.com/0/132627/1b19fdf2-39d1-5c31-1151-db5ffe5ded2c.png "スクリーンショット 2016-07-31 19.31.30.png")

まあそんな世の中甘くないよね
ということで

以下のサイトを参考に対処してみたことをメモ

http://fa11enprince.hatenablog.com/entry/2016/04/24/104944

## 環境
+ mac
+ eclipse neon(4.6)
+ tomcat 8.0.36

## 1. seasar2のプラグインをインストール

とりあえずseasarの環境を整えるところから

とは言ってもプラグインをインストールするだけなんだけどw

Help -> Install New Softwere... -> Add

以下のuriからseasar2のプラグインを4つ選択する
http://eclipse.seasar.org/updates/3.3

![スクリーンショット 2016-07-31 19.48.07.png](https://qiita-image-store.s3.amazonaws.com/0/132627/6d2e40b5-a218-0508-5c0e-749318592c83.png "スクリーンショット 2016-07-31 19.48.07.png")

### インストールするプラグイン一覧

#### Dolteng
Seasar2プロジェクトの雛形作成に必要となる

#### Kijimuna
diconファイルを編集するためのエディタ

#### SAStrutsPlugin
Strutsをsuper agileに開発できるようになる

#### ResourceSynchronizer
リクエストを受けるとワークスペースのリフレッシュを行う

## 2. SAStrutsチュートリアルをimport

以下のページからチュートリアルの最新版をダウンロード

http://sastruts.seasar.org/download.html

![スクリーンショット 2016-07-31 20.00.44.png](https://qiita-image-store.s3.amazonaws.com/0/132627/c44f139e-052e-a275-e647-40a31dd46097.png "スクリーンショット 2016-07-31 20.00.44.png")

適当な場所に解凍したら
eclipseにプロジェクトをimport

File -> Import... -> General/Existing Projects into Workspace

![スクリーンショット 2016-07-31 19.30.21.png](https://qiita-image-store.s3.amazonaws.com/0/132627/ebe8384e-1545-3edc-8a47-375e3be13734.png "スクリーンショット 2016-07-31 19.30.21.png")

## 3. プロジェクトの設定を変更

ここでtomcatを起動して
http://localhost:8080/sa-struts-tutorial/
にアクセスしても404エラーしか返ってこない

そもそも動的webモジュールとして
プロジェクトを認識していないんだそう

ということで以下の作業が必要になってくる

### 1. Tomcatを有効にする

Project -> Properties -> Tomcat

sa-struts-tutorialを選択した状態で
menuのProjectからPropertiesを選択する

項目からTomcatを選択して
全般タブを選択する

Tomcatプロジェクトにチェックを入れ
コンテキスト名をsa-struts-tutorialにする

![スクリーンショット 2016-07-31 20.30.03.png](https://qiita-image-store.s3.amazonaws.com/0/132627/e47016d2-232a-ee0f-cf0e-1a09d86fe4e1.png "スクリーンショット 2016-07-31 20.30.03.png")

### 2. プロジェクト・ファセットの変換

プロジェクト・ファセットというのは
そのプロジェクトがどういうものかを指しているらしい

つまり現在ただのJavaプロジェクトであるこいつを
動的webプロジェクトに変更するというわけだと思う

まずプロジェクトを右クリックして
Configure -> Convert to Faceted Form...を選択

![スクリーンショット 2016-07-31 20.39.41.png](https://qiita-image-store.s3.amazonaws.com/0/132627/7f29c561-5f82-5f8d-fb54-2c8d47605ab8.png "スクリーンショット 2016-07-31 20.39.41.png")

以降はPropertiesでProject Facetsの項目が
増えるので、そこで設定ができる

Project Facetsで
Dynamic Web Moduleにチェックし
Runtimesタブ -> Apache Tomcat v8.0にチェックを入れる

![スクリーンショット 2016-07-31 20.41.53.png](https://qiita-image-store.s3.amazonaws.com/0/132627/a8332f92-d311-b506-ddc5-5723960bb7f0.png "スクリーンショット 2016-07-31 20.41.53.png")

### 3. コンテンツをデプロイ

Properties内のDeployment Assemblyを選択

まずは不要なデフォルトコンテンツである
/WebContent
を削除する

その次にAdd...を選択
Folder -> src/main/webappを選択する

![スクリーンショット 2016-07-31 20.49.39.png](https://qiita-image-store.s3.amazonaws.com/0/132627/24d4a75b-fcb9-d06c-7b79-f4a3e99765f5.png "スクリーンショット 2016-07-31 20.49.39.png")

### 4. コンテキスト定義を更新

プロジェクトを右クリック -> Tomcatプロジェクト -> コンテキスト定義を更新

![スクリーンショット 2016-07-31 20.59.10.png](https://qiita-image-store.s3.amazonaws.com/0/132627/8757d445-d464-35d5-0a42-5878fbe4a80f.png "スクリーンショット 2016-07-31 20.59.10.png")

## 4. プロジェクトを実行

以上でプロジェクトの設定は終わり

とりあえずプロジェクトを実行して、
動作確認をする

プロジェクトを右クリック -> Run As -> Run On Server

![スクリーンショット 2016-07-31 21.04.30.png](https://qiita-image-store.s3.amazonaws.com/0/132627/8f38c4b7-25fd-c33c-a5e7-d01773e8161e.png "スクリーンショット 2016-07-31 21.04.30.png")

少し待って以下のような画面がeclipseに出てくれば成功

![スクリーンショット 2016-07-31 21.05.34.png](https://qiita-image-store.s3.amazonaws.com/0/132627/98cd9817-76bc-39bb-3b4b-2c15275463f3.png "スクリーンショット 2016-07-31 21.05.34.png")