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

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

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

dbfluteシリーズその3です〜


f:id:treeapps:20180418131549p:plain

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