Struts2.1.8を使ってみた

struts2系の導入練習で、Hello world作成。

参考サイトは幾つか見つけましたが、
http://www15.plala.or.jp/k_maeba/struts2/hello/index.html
http://journal.mycom.co.jp/special/2007/struts2/003.html
http://www.limy.org/program/java/struts2/first.html


最もシンプルかつファイル設置場所などわかりやすかったのが↓
http://codezine.jp/article/detail/2296?p=3

シンプル・イズ・ザ・ベスト。


ということで倣ってやってみましたが・・・・
ですが、実際に達成するまでには諸処”違い”がありました・・・・

2.0と2.1 必須jarが変わった?

まず、今回使った最新のstrutsのバージョンは2.1.8ですが、この記事は2.0.11。

記事で「必須」として上げられていたjar

commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar

これに該当しそうなのは・・・

commons-logging-1.0.4.jar
freemarker-2.3.15.jar
ognl-2.7.3.jar
struts2-core-2.1.8.jar
xwork-core-2.1.6.jar ←?

xwork-*に、 core なんて名称がついてます・・・。

でも他に該当しそうなjarもありませんし、コレのことだろうと解釈して、WEB-INF/lib以下に設置(ビルドインはせず)

他、参考記事と同様

  • /HelloProject/WEB-INF/web.xml
  • /HelloProject/index.jsp
  • /HelloProject/WEB-INF/src/strutd.xml
  • /HelloProject/WEB-INF/src/part1/Hello.java

設置してみましたが・・・・

爽やかに、エラー ^^;

HTTPステータス 404 -
type ステータスレポート

メッセージ
説明 The requested resource () is not available.

2.0と2.1 web.xmlの違い

バージョンの違いかな、とググるとでてきた情報。
2.0.*系とは、web.xmlの書き方が違うようです
http://www.sorich.jp/blog/shimamura/2008/09/struts212tomcat.html


2.1系は、filterにinit-param でactionPackagesの設定が必要


struts2
org.apache.struts2.dispatcher.FilterDispatcher


actionPackages



という情報を、一緒に挑戦してた先輩に伝えると
「その修正でできた」
という回答!

・・・私はまだ、エラーになります。
遠隔地(チャット)なので、微妙に状況がわかりません(汗)

そうだ、ログを見よう

あからさまなソース違いに惑わされましたが(駄目)、Tomcatのログを見てみることにしました。

最初のエラー

com.opensymphony.xwork2.util.logging.commons.CommonsLogger error
致命的: Dispatcher initialization failed

logging 関連のエラーのようですが・・・・

答えは commons-fileupload-1.2.1.jar

やっぱりjar(xwork)か?と思いつつjarに絞って検索すると。

掲示板などにチラホラ、
「実は commons-fileupload-1.2.1.jar も必要だ」
という情報が・・・・


半信半疑で commons-fileupload-1.2.1.jar 追加してTomcat再起動。


動いた(゚ロ゚;)