[seasar-dotnet:1991] Re: DBFlute: 実行に必要なのはJRE?JDK?

kubo [E-MAIL ADDRESS DELETED]
2011年 3月 25日 (金) 14:53:44 JST


久保(jflute)です。

なるほど、状況わかりました。
詳細な報告助かります。

ドキュメント方はちょっと微調整しました。とりあえずは、
「Java-5.0 以上の JDK か JRE の環境が必要です」と。
tools.jar に関しては、ひとまず物理的な問題が出てくるまでは、
ちょっと置いておきたいと思います。何か情報が入れば、
ドキュメント等に反映したいと思います。

JDBCドライバの方はなかなかややこしいようですね。
今回のフィードバックがとても貴重なものになるかと思います。
ありがとうございます。

ちなみに、SQLServerの場合、
o sqljdbc.jar => 5.0
o sqljdbc4.jar => 6.0
という風な対応だと認識していたのですが、
(実際に自分も試してみた結果)

// SQLServerの取扱い | DBFlute
http://dbflute.sandbox.seasar.org/ja/manual/reference/dbway/sqlserver/index.html

バージョン1.2のsqljdbc.jarであれば5.0環境でも動いた、
っていうことになりますかね...!?


#
# JDBCドライバはSQLServerが一番ややこしくって...
#

2011/3/25 Junichi Ito <[E-MAIL ADDRESS DELETED]>:
> 久保さん
>
> 返信ありがとうございます。
> えっと、結論から申し上げますと、tools.jarは実行に必須ではないようです。
> 以下詳細です(長文すみません)。
>
> まず、昨日から今日にかけて起こったことを時系列にまとめてみます。
>
> * * * * * * * * * * * * * * *
> <昨日>
> 1.
> Replace Schemaを実行
> => "Unable to locate tools.jar. Expected to find it in C:\Program
> Files\Java\jre1.5.0_11\lib\tools.jar"の
> メッセージとともに、BUILED FAILEDとなった
> (ログは最後に添付)
>
> 2.
> tools.jarがないことがエラー原因と推測
> => tools.jarを入手し、"C:\Program Files\Java\jre1.5.0_11\lib"にコピー
>
> 3.
> "Unable to locate tools.jar."のメッセージはなくなったが、再びBUILED FAILEDとなる
> => "java.lang.UnsupportedClassVersionError: Bad version number in .class file"の
> メッセージが出ていたが、実はこのメッセージは上記1の時点でも出ていた。
> (ログは最後に添付)
>
> 4.
> sqljdbc4.jarのMANIFEST.MFを確認すると「Created-By: 1.5.0_15-b04
> (Sun Microsystems Inc.)」とあり、JREのバージョン(=build 1.5.0_11-b03)より
> 新しいことが原因ではないかと推測
> => バージョン1.2のsqljdbc.jarファイルを入手し、extlibフォルダにコピー
>
> 5.
> 今度は「警告: Failed to load the sqljdbc_auth.dll」
> 「このドライバは、統合認証を行えるようには構成されていません。」という
> メッセージが表示されたので、ユーザー名とパスワードを指定する方法に変更。
>
> 6.
> Drop Tableの継続エラー問題などを解決し、ようやく「BUILD SUCCESSFUL」となる。
>
>
> <今日>
> 7.
> エラー再現を再現させるため、tools.jarをtools.jar.bakにリネームし、Replace Schemaを実行。
> => "Unable to locate tools.jar."のメッセージは表示されるが、
> 「BUILD SUCCESSFUL」となる。(あれれ???)
> (ログは最後に添付)
>
> 8.
> jdbc.bat, generate.batともに"Unable to locate tools.jar."のメッセージは表示されるが、
> 「BUILD SUCCESSFUL」となる。
> * * * * * * * * * * * * * * *
>
> つまり、7, 8の結果から"Unable to locate tools.jar."は警告表示らしいが、実行には
> 問題ないと推測されます。
>
> 最初の投稿ではtools.jarがないからBUILED FAILEDとなった、と書きましたが、
> 改めてログを見てみると、原因は別の問題(JDBCドライバのバージョン)だったようです。
>
> 警告表示が出るのは気持ち悪いですが、JDKが必須かというと、そうではないと思われます。
> どうもお騒がせして申し訳ありませんでした。
>
> なお、参考情報として1, 3, 7のログを添付しておきます。
>
> 伊藤
>
> * * * * * * * * * * * * * * *
> 1のログ
>
> Database will be initialized. Are you ready? (y or n) y
> .\extlib\extlib へのショートカット.lnk
> .\extlib\sqljdbc4.jar
> .\extlib\_readme.txt
> 3 個のファイルをコピーしました
> Unable to locate tools.jar. Expected to find it in C:\Program
> Files\Java\jre1.5.0_11\lib\tools.jar
> Buildfile: ..\..\..\tools\dbflute-0.8.9.25\build-torque.xml
>
> replace-schema:
>     [echo] +-----------------------------------------------+
>     [echo] |                                               |
>     [echo] | Replace-Schema !                              |
>     [echo] |                                               |
>     [echo] +-----------------------------------------------+
> [df-create-schema] 18:40:02,541 ERROR [main]
> org.seasar.dbflute.logic.DfDBFluteTaskUtil - Look! Read the message
> below.
> [df-create-schema] /* * * * * * * * * * * * * * * * * * * * * * * * *
> * * * * ** * * *
> [df-create-schema] Failed to execute DBFlute Task 'ReplaceSchema'.
> [df-create-schema]
> [df-create-schema] [Advice]
> [df-create-schema] Check the exception messages and the stack traces.
> [df-create-schema] * * * * * * * * * */
> [df-create-schema] java.lang.UnsupportedClassVersionError: Bad version
> number in .class file
> [df-create-schema]      at java.lang.ClassLoader.defineClass1(Native Method)
> [df-create-schema]      at java.lang.ClassLoader.defineClass(Unknown Source)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1130)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1307)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1371)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1324)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1072)
> [df-create-schema]      at java.lang.ClassLoader.loadClass(Unknown Source)
> [df-create-schema]      at
> java.lang.ClassLoader.loadClassInternal(Unknown Source)
> [df-create-schema]      at java.lang.Class.forName0(Native Method)
> [df-create-schema]      at java.lang.Class.forName(Unknown Source)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.newDriver(DfDataSourceHandler.java:186)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.createConnection(DfDataSourceHandler.java:152)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.processCachedConnection(DfDataSourceHandler.java:144)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.getConnection(DfDataSourceHandler.java:133)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfSimpleDataSource.getConnection(DfSimpleDataSource.java:23)
> [df-create-schema]      at
> org.seasar.dbflute.logic.jdbc.connection.DfCurrentSchemaConnector.connectSchema(DfCurrentSchemaConnector.java:52)
> [df-create-schema]      at
> org.seasar.dbflute.task.bs.DfAbstractTask.connectSchema(DfAbstractTask.java:363)
> [df-create-schema]      at
> org.seasar.dbflute.task.bs.DfAbstractTask.setupDataSource(DfAbstractTask.java:341)
> [df-create-schema]      at
> org.seasar.dbflute.task.replaceschema.DfCreateSchemaTask.setupDataSource(DfCreateSchemaTask.java:63)
> [df-create-schema]      at
> org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:90)
> [df-create-schema]      at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> [df-create-schema]      at
> sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> [df-create-schema]      at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> [df-create-schema]      at java.lang.reflect.Method.invoke(Unknown Source)
> [df-create-schema]      at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
> [df-create-schema]      at org.apache.tools.ant.Task.perform(Task.java:348)
> [df-create-schema]      at org.apache.tools.ant.Target.execute(Target.java:357)
> [df-create-schema]      at
> org.apache.tools.ant.Target.performTasks(Target.java:385)
> [df-create-schema]      at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> [df-create-schema]      at
> org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> [df-create-schema]      at
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
> [df-create-schema]      at
> org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> [df-create-schema]      at org.apache.tools.ant.Main.runBuild(Main.java:698)
> [df-create-schema]      at org.apache.tools.ant.Main.startAnt(Main.java:199)
> [df-create-schema]      at
> org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
> [df-create-schema]      at
> org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
>
> BUILD FAILED
> C:\~\dbflute-0.8.9.25\build-torque.xml:224: org.seasar.dbf
> lute.exception.DfDBFluteTaskFailureException:
> /* * * * * * * * * * * * * * * * * * * * * * *
> Failed to execute DBFlute task: ReplaceSchema
> Look at the log: console or dbflute.log
> * * * * * * * * * */
>
> Total time: 2 seconds
> 続行するには何かキーを押してください . . .
>
>
> * * * * * * * * * * * * * * *
> 3のログ
> ※"Unable to locate tools.jar."のメッセージが消えた以外は同じ
>
> Database will be initialized. Are you ready? (y or n) y
> .\extlib\extlib へのショートカット.lnk
> .\extlib\sqljdbc4.jar
> .\extlib\tools.jar
> .\extlib\_readme.txt
> 4 個のファイルをコピーしました
> Buildfile: ..\..\..\tools\dbflute-0.8.9.25\build-torque.xml
>
> replace-schema:
>     [echo] +-----------------------------------------------+
>     [echo] |                                               |
>     [echo] | Replace-Schema !                              |
>     [echo] |                                               |
>     [echo] +-----------------------------------------------+
> [df-create-schema] 18:51:48,921 ERROR [main]
> org.seasar.dbflute.logic.DfDBFluteTaskUtil - Look! Read the message
> below.
> [df-create-schema] /* * * * * * * * * * * * * * * * * * * * * * * * *
> * * * * ** * * *
> [df-create-schema] Failed to execute DBFlute Task 'ReplaceSchema'.
> [df-create-schema]
> [df-create-schema] [Advice]
> [df-create-schema] Check the exception messages and the stack traces.
> [df-create-schema] * * * * * * * * * */
> [df-create-schema] java.lang.UnsupportedClassVersionError: Bad version
> number in .class file
> [df-create-schema]      at java.lang.ClassLoader.defineClass1(Native Method)
> [df-create-schema]      at java.lang.ClassLoader.defineClass(Unknown Source)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1130)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1307)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1371)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1324)
> [df-create-schema]      at
> org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1072)
> [df-create-schema]      at java.lang.ClassLoader.loadClass(Unknown Source)
> [df-create-schema]      at
> java.lang.ClassLoader.loadClassInternal(Unknown Source)
> [df-create-schema]      at java.lang.Class.forName0(Native Method)
> [df-create-schema]      at java.lang.Class.forName(Unknown Source)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.newDriver(DfDataSourceHandler.java:186)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.createConnection(DfDataSourceHandler.java:152)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.processCachedConnection(DfDataSourceHandler.java:144)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfDataSourceHandler.getConnection(DfDataSourceHandler.java:133)
> [df-create-schema]      at
> org.seasar.dbflute.helper.jdbc.connection.DfSimpleDataSource.getConnection(DfSimpleDataSource.java:23)
> [df-create-schema]      at
> org.seasar.dbflute.logic.jdbc.connection.DfCurrentSchemaConnector.connectSchema(DfCurrentSchemaConnector.java:52)
> [df-create-schema]      at
> org.seasar.dbflute.task.bs.DfAbstractTask.connectSchema(DfAbstractTask.java:363)
> [df-create-schema]      at
> org.seasar.dbflute.task.bs.DfAbstractTask.setupDataSource(DfAbstractTask.java:341)
> [df-create-schema]      at
> org.seasar.dbflute.task.replaceschema.DfCreateSchemaTask.setupDataSource(DfCreateSchemaTask.java:63)
> [df-create-schema]      at
> org.seasar.dbflute.task.bs.DfAbstractTask.execute(DfAbstractTask.java:90)
> [df-create-schema]      at
> org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
> [df-create-schema]      at
> sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> [df-create-schema]      at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> [df-create-schema]      at java.lang.reflect.Method.invoke(Unknown Source)
> [df-create-schema]      at
> org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
> [df-create-schema]      at org.apache.tools.ant.Task.perform(Task.java:348)
> [df-create-schema]      at org.apache.tools.ant.Target.execute(Target.java:357)
> [df-create-schema]      at
> org.apache.tools.ant.Target.performTasks(Target.java:385)
> [df-create-schema]      at
> org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
> [df-create-schema]      at
> org.apache.tools.ant.Project.executeTarget(Project.java:1298)
> [df-create-schema]      at
> org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
> [df-create-schema]      at
> org.apache.tools.ant.Project.executeTargets(Project.java:1181)
> [df-create-schema]      at org.apache.tools.ant.Main.runBuild(Main.java:698)
> [df-create-schema]      at org.apache.tools.ant.Main.startAnt(Main.java:199)
> [df-create-schema]      at
> org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
> [df-create-schema]      at
> org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
>
> BUILD FAILED
> C:\~\dbflute-0.8.9.25\build-torque.xml:224: org.seasar.dbf
> lute.exception.DfDBFluteTaskFailureException:
> /* * * * * * * * * * * * * * * * * * * * * * *
> Failed to execute DBFlute task: ReplaceSchema
> Look at the log: console or dbflute.log
> * * * * * * * * * */
>
> Total time: 1 second
> 続行するには何かキーを押してください . . .
>
>
> * * * * * * * * * * * * * * *
> 7のログ
> ※"Unable to locate tools.jar."のメッセージは出ているが、ビルドは成功する。
>
> Database will be initialized. Are you ready? (y or n) y
> .\extlib\sqljdbc.jar
> .\extlib\_readme.txt
> 2 個のファイルをコピーしました
> Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre1.5.
> 0_11\lib\tools.jar
> Buildfile: ..\..\..\tools\dbflute-0.8.9.25\build-torque.xml
>
> replace-schema:
>     [echo] +-----------------------------------------------+
>     [echo] |                                               |
>     [echo] | Replace-Schema !                              |
>     [echo] |                                               |
>     [echo] +-----------------------------------------------+
>
> BUILD SUCCESSFUL
> Total time: 5 seconds
> 続行するには何かキーを押してください . . .
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内