dbfluteシリーズその3です〜
mac、tomcat7.0、SAStruts、の環境で dbflute0.9.8.2 を動かしてみましょう。
前回で自動生成はできるようになったので、webアプリから読んでみます。
ではtomcat起動します。
java.lang.NoClassDefFoundError: org/seasar/dbflute/bhv/AbstractBehaviorWritable at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) ・・・略・・・ Caused by: java.lang.ClassNotFoundException: org.seasar.dbflute.bhv.AbstractBehaviorWritable at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
あら・・・
私がマニュアルよく読んでないのが原因かもしれませんが、何か足りてない可能性がありますね。
調査してみて解ったのですが、$TOMCAT_HOME/lib に dbflute-runtime.jar を配置する必要があるようです。
では配置して起動してみます。
org.seasar.framework.exception.InvocationTargetRuntimeException: [ESSR0043]treefriend.dbflute.allcommon.DBFluteInitializerが呼び出した対象が不正です。理由はjava.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.seasar.framework.util.ConstructorUtil.newInstance(ConstructorUtil.java:65) at org.seasar.framework.container.assembler.AbstractConstructorAssembler.assembleDefault(AbstractConstructorAssembler.java:115) at org.seasar.framework.container.assembler.AutoConstructorAssembler.doAssemble(AutoConstructorAssembler.java:44) ・・・略・・・ Caused by: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.seasar.dbflute.cbean.ConditionBeanContext.<clinit>(ConditionBeanContext.java:32) at treefriend.dbflute.allcommon.DBFluteInitializer.loadCoolClasses(DBFluteInitializer.java:75)
エラーの内容が変わったので、一歩前進したようです。
エラーメッセージから察するに、commons-logging.jarが依存ライブラリのようですね。
では $TOMCAT_HOME/lib に commons-logging-1.1.jar を配置し、リトライします。
情報: Server startup in 3532 ms
動いた!やりました!
最終的にこんな感じで動きます。
$TOMCAT_HOME
┗ lib
┣ dbflute-runtime.jar
┗ commons-logging-1.1.jar