ProjectをClean
・・がやっぱり「path属性で指定された設定ファイル(***.dicon)がみつかりません」が消えない。
とりあえず、ナビゲータで位置を確認しよう。
includeで問題が出てるのは
includeされるのは次のファイルのはず…
- Buri2.1/src/dao.dicon
- Buri2.1/src/aop.dicon
- Buri2.1/src/javelin.dicon
んーと説明をみると…
すべてのコンポーネントを1つのファイルに記述すると、直ぐに肥大化してしまい管理が難しくなります。そのため、コンポーネントの定義を複数に分割する機能と分割された定義をインクルードして1つにまとめる機能がS2Containerにあります。S2Container定義ファイルのインクルードは次のようにして行います。
includeタグのpath属性で取り込みたいS2Container定義ファイルのパスを指定します。詳しくは、includeタグを参照してください。
コンポーネントの検索順は、先ず自分自身に登録されているコンポーネントを探して、見つからない場合は、includeされている順に子供のS2Containerに登録されているコンポーネントを検索し、最初に見つかったコンポーネントが返されます。
分割されたS2Containerの定義を取り込む場合に使います。
path属性(必須)定義ファイルのパスを指定することができます。CLASSPATHで指定されているディレクトリをルートとする定義ファイルの絶対パスです。例えば、WEB-INF/classes/aaa.dicon の場合は aaa.dicon に、WEB-INF/classes/aaa/bbb/ccc.dicon の場合は aaa/bbb/ccc.dicon になりますセパレータは、WindowsでもUnixでも/です。
ということは、「Buri2.1/src」がルートだと思い込んでたんだけどちがうョと・・
とりあえずファイルの位置を変更してみる
- 以下のファイルを「Buri2.1/src」→「Buri2.1/src/main/java」へコピー
- ProjectをClean
エラーは出なくなった・・・けどこうやっていいのか??
- Project → properties → Java Build Path
Buri2.1/classes 以下にコピーしたファイルがあるから問題ないのかな
さてそれではテスト・・・の前にデータベースを用意
- ドキュメントのシステム要件にもかいてあるし
とりあえずは、derby があるのでそれを使うとしてと、なんか楽に操作できる Eclipse Plugin がないか探してみる。
必要なファイルと手順 http://s2buri.sandbox.seasar.org/doc/body016.html から
srcフォルダにある
BRIMessages_ja.properties
buri2.dicon
は必須です。
- BRIMessages_ja.properties は Buri2.1/src/main/resources にあるのでOK
- buri2.dicon は Buri2.1/src/main/java にないので、Buri2.1/src からコピー
やっとこれでテストできるかな^^;
Buri2.1/test/org/seasar/buri/impl/BuriDefaultEngineTest.javaを開いて[Run] → [Run As] → [JUnit Test]
Test type does not exist
って・・そりゃそうか、Java Build Path の Source(Source folders on build path:)に Buri2.1/test は入ってなかったョ...orz
- Source(Source folders on build path:)に Buri2.1/test を追加
- ProjectをCleanすると
からエラー
- [include] path属性で指定された設定ファイル(bao.dicon)がみつかりません
bao.dicon は Buri2.1/src/main/java にないので、Buri2.1/src からコピー
再度、JUnit 実行!
むー、実行はされたけど、全部エラーに。
makotan さんのコメントで、間抜けなことしてたのがわかったのでやり直し〜
- とりあえず、S2Buri0.2.2 をダウンロード
- ごちゃごちゃいじったので、一旦Workspace上のBuri2.1プロジェクトをクローズして管理情報のみ削除、ファイルは別なとこへ退避
- s2buri0_2_2.zip を解凍して、中のBuri2.1フォルダをWorkspace上にコピー
- Eclipse から Import
- Java Build Path の JRE System Library を自分の環境にあわせる
- プロジェクトを右クリック→Apache Derby→Remove Apache Derby nature
- プロジェクトを右クリック→Apache Derby→Add Apache Derby nature
- ProjectをClean → エラーは出なくなる
- プロジェクトを右クリック→Apache Derby→Start Derby Network Server
- プロジェクトを右クリック→Apache Derby→ij
- Buri2.1/db/buri が既にあるが以下を実行する
- Buri2.1/src/test/java/example/org/seasar/buri/test/BaoTest.java を JUnit Test 実行する
- エラーで終了
org.seasar.framework.exception.SQLRuntimeException: [ESSR0071]SQLで例外が発生しました。理由はSQL Exception: データベース 'db/buri' を始動できません。詳しくは、次の例外を参照してください。
以下略
んーうまくコネクトできてないのかなぁ
エラー XJ040: データベース 'db/buri' を始動できません。詳しくは、次の例外を参照してください。
エラー XSDB6: Derby の別のインスタンスがすでにデータベース C:\workspace\Buri2.1\db\buri をブートしている可能性があります。
エラーメッセージが同じだ
んじゃもしかしたら、実行してる ij 全部止めたら行けるかも!
結果:はい、テストが通りました
バカだねぇ>自分 orz
*1:以前手でファイルを指定したものを解除