[Seasar-user:1668] Re: struts + dao 連携
Hideaki Maekawa
maekawa
2005年 3月 23日 (水) 17:13:07 JST
前川です。
> java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
ということなんでWebアプリのクラスパスにjta.jarが無いのでしょう。
WEB-INF/libにjta.jar(他にもS2ファミリーに必要なライブラリ)をインストール
すればいいんじゃないでしょうか。
------
>
> 藤山と申します。
>
> 現在 Struts + S2Struts + S2Dao を連携させるプログラムを作成しております。
> 具体的にはログイン画面で入力されるユーザID、パスワードがDB内のUSERSテーブルに登録されているかを確認し、成功すれば次画面に遷移するといった簡単なものです。
> ログイン画面のログインボタン押下のタイミングでActionクラスのexecute内で、ログイン情報を検証するサービスクラスのcheckメソッドが呼ばれるようにしております。checkメソッド内ではDBからユーザ情報を取得するDaoクラス内のgetAllUsersメソッドを呼んでおります。
> 現時点ではcheckメソッド内で、USERSテーブルのDaoダイコンファイルを読込みS2Containerオブジェクトを生成するところで以下のようなエラーとなっています。
>
> -------------Eclipse上エラー-----------------------------------------------------------------------------------------------------------------------
> 2005-03-23 14:47:07,937 [http-8080-Processor25] ERROR StandardWrapper[/gaams114-S2Sample:action] - サーブレット action のServlet.service()が例外を投げました
> java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(Unknown Source)
> ・・・
>
> --------------ブラウザ上エラー------------------------------------------------------------------------------------------------------------------------
> javax.servlet.ServletException: サーブレットの実行により例外を投げました
> org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:45)
> org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:47)
>
>
> エラー対象クラスファイルは以下の通りです。
>
> --------------エラー対象クラス------------------------------------------------------------------------------------------------------------------------
> public class LoginServiceImpl implements LoginService {
>
> private static final String PATH = "org/seasar/dao/examples/login/LoginDao.dicon";
> public boolean check (String username, String password) {
>
> S2Container container = S2ContainerFactory.create(PATH); ←ここでエラー
> container.init();
>
> try {
> LoginDao dao = (LoginDao) container
> .getComponent(LoginDao.class);
> List users = dao.getAllUsers();
> for (int i = 0; i < users.size(); ++i) {
> System.out.println(users.get(i));
> }
>
> }
> catch (Exception e) {
> e.printStackTrace();
> }
>
> finally {
> container.destroy();
> }
> }
>
> ちなみにmain内で上記プログラムは普通にDBに接続できています。
> 基本的なことかも知れませんがエラー原因がお分かりになる方ぜひともよろしくお願いします。
>
> 開発環境は以下の通りです。
> ・JDK:1.5
> ・S2:2.2.3
> ・Dao:1.0.23
> ・Struts:1.1.4
> ・コンテナ:Tomcat5.5
> ・DB:HSQL
> ・開発環境:Eclipse3.0
>
>
>
>
>
>
> ---------------------------------
> Do You Yahoo!?
> Upgrade Your Life
--
株式会社フリーダム システム開発部
前川英昭 <maekawa @ frdm.co.jp>
0x2ED8CFD9 : 8E27 33DD 3480 C83A 15AD EB27 DC37 1DBE 2ED8 CFD9
Seasar-user メーリングリストの案内