読者です 読者をやめる 読者になる 読者になる

文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

dbfluteの罠:その3:必要なもの

dbflute

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.(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