* * * * * * * * */

java.lang.NoClassDefFoundError: org/apache/xerces/dom/DocumentImpl
at org.apache.torque.task.TorqueJDBCTransformTask.createDocumentImpl(TorqueJDBCTransformTask.java:217)
at org.apache.torque.task.TorqueJDBCTransformTask.doExecute(TorqueJDBCTransformTask.java:181)
at org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:91)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.Target.performTasks(Target.java:411)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
at org.apache.tools.ant.Main.runBuild(Main.java:801)
at org.apache.tools.ant.Main.startAnt(Main.java:218)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.dom.DocumentImpl
at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1361)
at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1311)
at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1064)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 19 more
2010-10-05 17:41:10,531 [main] INFO (DfDataSourceHandler#destroy():115) - ...closeReally()
2010-10-05 17:41:10,640 [main] INFO (DfAbstractTask#showFinalMessage():196) -

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

   
  java.lang.NoClassDefFoundErrorなので 必要なクラスファイルが見つからないのだろうか・・・

  

DBFlute奮闘記

かの有名なSeasarファンデーションのDBFlute ずっと気になっていたので
ここで奮起して環境をつくってみた

周りから手間が多いしなかなかうまくいかないよと忠告され
なかなかやる気がでなかったが、随分こなれてきたはずと思いスタート
初心者が役に立てる情報が出せればいいなと


早速古い雑誌を見つけてきて
簡単な環境を整えてみる

まとまってそうなのは
「WEB+DB vol.41」 2007年だ すごく古いが ほかになかなかまとまった情報がないので
仕方ないか

1)JDKを入れる
  当時の環境だとJDK 1.5.0_12 とある
  これもうないな 仕方なく JDK 1.5.0_22 をダウンロードする
  
  インストールして、パスを通す
  コマンドプロンプトで JAVA -version で確認 
  例のクイックタイムがクラスパスを汚すので クラスパスだけは確認しておく
  大丈夫そうだ

2)ANTも同様 パスを通し ひとまず安心

3)Eclipse 3.2.2 これもなかなかないので 3.3で代用を


4)ここから本番だ
  Seasar 関連のプラグイン

  正直言って書籍ではSeaser3.2を http://eclipse.seasar.org/updates/3.2 から
  落としてくるのだが  3.3でも可能と書いてある
  
  意外とこれは詰まったが 3.2から落とすと Chura プロジェクトが作れるのだが 3.3から落とすと
  作れない。ここはこの通りやるのであればポイント その後、プロジェクト名が変わったようだ

  とりあえず、Dolteng/Kijimuna/S2JSF/DbLauncher/EMecha を選択しダウンロードする
    DBFluteEMechaに入っているらしい


5)パッケージエクスプローラーからじゃないと作れない!!!

  メニュー→新規→プロジェクト→「Chura Project」を選択 と
  これもはまってしまった、Eclipse から新規プロジェクトを作成するところで
  何? Chura Project が出てこない!
  くだらない話だが、ワークスペースをたくさん持っている人は要注意
  必ずパッケージエクスプローラーからじゃないと出てこない模様

6)作成画面にプロジェクト名とルートパッケージを入力して・・・
  
  プロジェクト名とルートパッケージ名を聞いてくるので
  hogeproject seasardemo  と記入し

  プロジェクトタイプで Super Agile を選択

 終了ボタンを押して無事終了   ・・何やら勝手にファイルを作ってるよう

7)データベースH2の用意

  パッケージエクスプローラーからプロジェクトを右クリックしてプロパティー→DBLauncher を選択
      Use H2 Database のチェックを確認
       DbPortNo が 9092 で確認する
       
8)データベースの起動

   パッケージエクスプローラーからプロジェクトを右クリックしてH2→Start H2 Server を実行する

   おお動いた コンソールに
    Web server running on http://192.168.2.105:8082 (only local connections)
    TCP server running on tcp://192.168.2.105:9092 (only local connections)
   と表示され無事DB起動

9)このChura Project にDBFluteクライアント環境の作成に入る

   パッケージエクスプローラーからプロジェクトを右クリックして
   メニュー→新規→その他→DBFlute Client Directory を選択

   設定画面が出てくる

    最初は意味がわからずいろいろやってしまったが
    基本はChura Default ボタンを押せばいいよう
    ただし、データベースの選択 → h2
    その時にURIの設定は注意
     データベースをファイルタイプで指定する場合には jdbc:h2:file で指定
     今回サーバモードでH2立ち上げているので jdbc:h2:tcp://localhost:9092/なんとか
     で設定しないといけない
    ここは要注意

   あとはDBFluteの最新バージョンを落として 終了ボタンを押す

10) DBFlute REPLASE-SCHEMA タスクの実行

   これも予想通り一地縄ではいかない  9)で作成されたファイルの中にreplace-schema.batというファイルが作成
   されるので これをコマンドプロンプトから実行
    すると勝手にDBを作ってくれる スキーマ情報はdbflute_hogeproject/playsql/replace-schema.sqlに書かれている
    もので行われるので 新しく作りたければこの情報を書きなおしてやればいい

   コマンドプロンプトでエラーは確認しにくいので dbflute_hogeproject/log/dbflute.log のログを確認する

    H2を使う場合 JDBCのドライバーのバージョンでエラーが頻発したので
    注意する クラスパスの確認とドライバーのバージョン違いがある場合にはどちらかにする必要あり
    デフォルトで2種類あったので これはよく起こる話だと思う

11) jdbc.bat   ついに力尽きた・・・・

   このタスクは難易度が高いような気がする・・・かなりログを見てるのだか未だ解決できない
   エラーの状況からクラスが読み込めてないようだけど

2010-10-05 17:41:10,484 [main] ERROR (DfDBFluteTaskUtil#logError():203) - Look! Read the message below.
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Failed to execute DBFlute Task 'JDBC'.

[Advice]
Check the exception messages and the stack traces.

[Database Product]
H2 1.2.135 (2010-05-08)

[JDBC Driver]
H2 JDBC Driver 1.2.135 (2010-05-08) for JDBC 3.0