* * * * * * * * */
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で代用を
正直言って書籍ではSeaser3.2を http://eclipse.seasar.org/updates/3.2 から
落としてくるのだが 3.3でも可能と書いてある
意外とこれは詰まったが 3.2から落とすと Chura プロジェクトが作れるのだが 3.3から落とすと
作れない。ここはこの通りやるのであればポイント その後、プロジェクト名が変わったようだ
とりあえず、Dolteng/Kijimuna/S2JSF/DbLauncher/EMecha を選択しダウンロードする
DBFluteはEMechaに入っているらしい
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