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