[Seasar-user:19212] Re: [SAStruts] パス分割をした場合にNull例外
t.i.
[E-MAIL ADDRESS DELETED]
2010年 1月 31日 (日) 13:57:56 JST
すみません、インデントが意図したものにならなかった為、再ポストです;
=======================================
初めてメールさせて頂きます。
お世話になります、イソイテクです。
長文失礼いたします。
[概要]
SAStrutsでパス分割をした場合にNullPointerExceptionが発生します。
当方の設定に不備があればご指摘宜しくお願い致します。
[詳細]
http://localhost:8080/context_root/goods/list/に
アクセスした場合にNullPointerExceptionが発生します。
---
java.lang.NullPointerException
org.seasar.struts.util.S2ExecuteConfigUtil.findExecuteConfig(S2ExecuteConfigUtil.java:70)
org.seasar.struts.filter.RoutingFilter.doFilter(RoutingFilter.java:127)
org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:99)
org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
---
このURLリクエストにて実行されるのは、Goodsというテーブルから
データを取得しデータを表示するというものです。
「分割」とは、action,formパッケージ下にもう一つパッケージを作成するとい
う事です。
ソースのパッケージ構成は以下の通りです。
└─context_root
├─action
│ └─goods
├─dao
├─dto
├─dxo
├─entity
└─form
└─goods
また、jspのディレクトリ構成は以下の通りです。
/src/main/webapp
├─css
├─WEB-INF
└──view
├─common
└─goods
├─edit
└─list
さらに、convention.diconファイルの内容は以下の通りです。
<components>
<component
class="org.seasar.framework.convention.impl.NamingConventionImpl">
<initMethod name="addRootPackageName">
<arg>"context_root"</arg>
</initMethod>
</component>
</components>
上記のような構成でNull例外が発生する原因は何でしょうか。
※過去MLログも拝見しましたが…わかりませんでした;
[S2関連jarファイルバージョン情報]
s2-dao-1.0.49.jar
s2-dao-tiger-1.0.49.jar
s2-extension-2.4.40.jar
s2-framework-2.4.40.jar
s2-tiger-2.4.40.jar
sa-struts-1.0.4-sp7.jar
struts-1.2.9.jar
[参考になるかもしれません情報]
・試したこと
sa-struts-tutorialチュートリアルに新たに「bunkatsu」というディレクト
リを作成し、
その下にサンプルのaddを、名前をadd2に変えて「分割」してみたところ、
エラー無く動きました。
上記の設定ファイルと、context_root下の設定ファイル(web.xmlを含む)
をdiffにより比較し、
同じようにしても、やはりNull例外が発生しました。
・不審な点
デバッグによりブレークポイントで実行を止めながらソーストレースしました。
そこで分かった事は、上手く行く場合と私のアプリでの或る差分でした。
ModuleConfigImplクラス(org.apache.struts.config.implパッケージ)の
addActionConfigメソッドが呼ばれるか呼ばれないか、という事になります。
sa-struts-tutorialチュートリアルで「分割」した場合や、「分割」しない
場合では
addActionConfigメソッドが呼ばれるのに対し、私のアプリでは呼ばれな
かったのです。
(これ以上のソーストレースが困難だったため、MLにて質問している次第で
す;)
以上です。
Seasar-user メーリングリストの案内