[Seasar-user:20405] Re: 【S2Dao-CodeGen】自動生成したDAOのfindメソッドで例外発生

Oonaka Hiroyuki [E-MAIL ADDRESS DELETED]
2010年 12月 8日 (水) 00:16:54 JST


大中(せと)です。

(10/12/06 21:21), Takeshi Motegi wrote:

> ==========================
> /**
> * Conditionに指定した検索条件と一致するEntityのリストを取得します。
> *
> * @param dto 検索条件を指定したCondition
> * @return Entityのリスト
> */
> @org.seasar.dao.annotation.tiger.Arguments("condition")
> public List<Department> find(DepartmentCondition condition);
> ==========================
> というメソッドがあるのですが、このクラスの初期化時に以下の例外が発生
> してしまいます。付加されているArgumentsアノテーションを削除すると、例外
> は発生しなくなりますが、このアノテーションが余計に付加されているという理
> 解でいいのでしょうか?
> ==========================
> javax.servlet.ServletException:
> org.seasar.dao.MethodSetupFailureRuntimeException:
> [EDAO0019]example.dao.DepartmentDaoのfindメソッドの初期化時に例外が発生 
> しました。理由はorg.seasar.dao.MethodSetupFailureRuntimeException:
> [EDAO0019]example.dao.DepartmentCoreのfindメソッドの初期化時に例外が発生 
> しました。理由は 
> org.seasar.extension.jdbc.ColumnNotFoundRuntimeException: [ESSR0068]テー 
> ブル
> (department)のカラム(condition)が見つかりません
> org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)javax.servlet.http.HttpServlet.service(HttpServlet.java:617)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)example.filter.EncodingFileter.doFilter(EncodingFileter.java:21)========================== 
> どなたか情報をお持ちの方がいらっしゃれば、よろしくお願いいたします。茂木

詳しいことはスタックトレースを全部見てみないとわからないのですが、
現象から推察すると、S2Dao-CodeGenで生成したコードを動作するために
必要な拡張ランタイム(codegen-lib)がtomcatのクラスパスに通ってない
ために、(本来呼ばれない)S2Dao本来の機能が呼ばれて誤作動しているよ
うに見受けられます。

codegen-libについては、以下もご参照ください。
http://s2dao-codegen.sandbox.seasar.org/docs/howto_running.html


-- 
大中浩行(せとあずさ)
[E-MAIL ADDRESS DELETED]


Seasar-user メーリングリストの案内