[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 メーリングリストの案内