設定試行錯誤

さて、これで動くはずと思ったのでHSQLDBTomcatを起動し、ブラウザから

を叩く。結果は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再起動。
今度は

  • java.lang.NoClassDefFoundError: org/apache/commons/digester/RuleSet

とか言ってるので確かめたら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を再起動して、ブラウザから

を叩く。今度はちゃんと一覧が出てきた。やったね。

おまけ:struts-config.xml

<?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>