設定試行錯誤
さて、これで動くはずと思ったのでHSQLDB、Tomcatを起動し、ブラウザから
を叩く。結果は404-NotFound・・・・
しばらくウンウンと悩んでいるとid:yuki_neko_nyanから「ログ見れば?」
そういやtomcatのログの存在をすっかり忘れていた。基本なのになぁ、まだまだだね。
ログを見たらweb.xmlで書いたorg.seasar.framework.container.filter.S2ContainerFilterがないよBoo-Boo-と言っている。そういやS2のメインライブラリにパスを通すの忘れてた。
id:yuki_neko_nyanにlibの下にフォルダを掘っているのはダメだと言うことで直して、ビルドパスを通し直す。
んでtomcatを再起動してログを見ると、今度はapp.diconがないよBoo-Boo-と言っている。
ドキュメントをみたら書かなきゃダメと言っているのでid:yuki_neko_nyanの体験記にあったのをコピペする。
app.dicon
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container//EN" "http://www.seasar.org/dtd/components.dtd"> <components> <include path="s2struts.dicon"/> </components>
して、includeしているs2struts.diconはサンプルのをそのまま持ってくる。んでtomcat再起動。
今度は
とか言ってるので確かめたらjarないし。やはり前言撤回、ライブラリは妄信的にlibの下にまとめて放り込んでおけ、ということで。
んで次は
- javax.servlet.UnavailableException: Cannot load a validator resource from '/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml'
とか言ってる。ああ、そういやstruts-config.xmlにそんな記述があったね。
今はフォームもへったくれもないからとりあえず空xmlファイルでも置いておきますか。レッツ再起動
今度はcommons-validatorがないらしい。s2strutsのライブラリ群には入ってなかったのでstrutsから持ってきてビルドパスを通す。再起動。
またvalidatorの設定ファイルがどうこう言っているのでstruts-config.xmlからvalidatorの記述を除去。
そうすると今度はUnitDataDaoが見つからないといっている。app.diconでMobileSuitsDataBaseのdao.diconをインクルードしてないから当たり前か。
でもこれってプロジェクトが違う場合ってどう動作するんだろう。
・・・・・
やっぱプロジェクト別にしたのはダメぽかな。id:yuki_neko_nyanの助言に従ってMobileSuitsDataBaseプロジェクトのソースとライブラリを現プロジェクトにコピーする。
幸い、パッケージ構造とかは殆ど同じなのですんなりと移行できた。
この状態でTomcatを再起動して、ブラウザから
を叩く。今度はちゃんと一覧が出てきた。やったね。
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <form-beans> <form-bean name="allUnitData" type="redrisefirm.seasar.s2struts.actionForm.GetAllUnitDataActionForm"/> </form-beans> <action-mappings> <action path="/allUnitDataList" type="redrisefirm.seasar.s2struts.action.GetAllUnitDataAction" name="allUnitData"> <forward name="allUnitData" path="/jsp/allUnitData.jsp"/> </action> </action-mappings> <!--S2combination--> <controller processorClass="org.seasar.struts.processor.S2RequestProcessor"/> <plug-in className="org.seasar.struts.plugin.RegistActionClassPlugIn"/> </struts-config>