[Seasar-user:21613] Re: s2jdbc-genでNJ#?t%G!<%?%=!<%94D6-$N%(%s%F%#%F%#$N @ 8@.

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2013年 4月 26日 (金) 15:44:02 JST


中村(taedium)です。

> こういった構成では、s2jdbc-genによる自動生成はできないのでしょうか。

専用の設定ファイルを作成し、
特定のデータソースが使用されるようにすれば自動生成できます。

以下に方法を説明します。

まず、s2jdbc.diconをコピーし、同じディレクトリに
db2-s2jdbc.diconを作成してください。

次に、db2-s2jdbc.diconを開き、
  <include path="jdbc.dicon"/>
という記述のpath属性の値をDB2のデータソースを含んだdiconに変更してください。
こうすることで、JdbcManagerに、SelectableDataSourceProxyではなく
特定のDataSourceをDIさせます。

最後に、Gen-EntiyタスクやGen-ServiceのconfigPathパラメータに
db2-s2jdbc.diconを指定してください。

DB3でも同様の手順をとってください。

# ここで作成したdb2-s2jdbc.diconファイルは、S2JDBC-Genで利用するための
# ものです。アプリケーションの実行環境では不要です。


On Fri, 26 Apr 2013 04:51:27 +0000
<zilloll @ attglobal.net> wrote:

> はじめまして。鷹野といいます。
> 
> SAStruts + S2JDBCで複数データソースを動的に振り分ける構成としたく、
> s2jdbc-genによりentity/serviceソースを自動作成しようとしているのですが、
> 以下のようなエラーとなり、うまくいきません。
> ※以下のs2jdbc-gen-build.xmlの281行目は「<target name="gen-entity"><gen-
> entity>」記述部分です。
> ※s2jdbc-genは  「s2jdbc-gen-2.4.45.jar」を使用しています。
> 
> [エラー内容]
> s2jdbc-gen-build.xml:281: Exception in thread "main" 
> org.seasar.framework.exception.EmptyRuntimeException: [ESSR0007]
> dataSourceNameはnullあるいは空であってはいけません
> 	at 
> org.seasar.extension.datasource.impl.SelectableDataSourceProxy.getDataS
> ource(SelectableDataSourceProxy.java:65)
> 	at 
> org.seasar.extension.datasource.impl.SelectableDataSourceProxy.getConn
> ection(SelectableDataSourceProxy.java:82)
> 	at org.seasar.extension.jdbc.util.DataSourceUtil.getConnection
> (DataSourceUtil.java:51)
> 	at 
> org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.getRdb
> msName(AbstractCommand.java:232)
> 	at 
> org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.logRdb
> msAndGenDialect(AbstractCommand.java:222)
> 	at 
> org.seasar.extension.jdbc.gen.internal.command.GenerateEntityCommand.
> doInit(GenerateEntityCommand.java:686)
> 	at 
> org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.init
> (AbstractCommand.java:203)
> 	at 
> org.seasar.extension.jdbc.gen.internal.command.AbstractCommand.execut
> e(AbstractCommand.java:160)
> 	at 
> org.seasar.extension.jdbc.gen.internal.command.CommandInvokerImpl.inv
> oke(CommandInvokerImpl.java:29)
> 	at 
> org.seasar.extension.jdbc.gen.command.CommandAdapter.main
> (CommandAdapter.java:61)
> 
> 
> 具体的な構成としては、独自の構成のDB1および同じ構成のDB2/DB3の3つのデータソース
>> あり、DB1は単一の「jdbcManager1」を使用し、DB2/DB3は「jdbcManager2」を共有して
> 動的に切り替える構成にしたいと考えており、以下のサイトを参考にしながら
> jdbc.dicon類とs2jdbc.dicon類を作成しました。
> ※DB1側のentity/serviceの生成は成功しました。
> 
> [参考にしたサイト]
> http://s2container.seasar.org/2.4/ja/jdbc.html
> http://s2container.seasar.org/2.4/ja/s2jdbc_other.html
> 
> エラーの内容を見ると、共有利用しようとしている「jdbcManager2」で
> 複数設定されているデータソースのどちらを使用するかわからないということのように
> 思いますが、「s2jdbc-gen-build.xml」へのデータソース指定方法があるものか
> 確認してみましたが、見た感じそのような設定は無いように見えます。
> 
> [確認したサイト]
> http://s2container.seasar.org/2.4/ja/s2jdbc_gen/tasks/gen_entity.html
> 
> こういった構成では、s2jdbc-genによる自動生成はできないのでしょうか。
> 
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user

-- 
Toshihiro Nakamura <nakamura.toshihiro @ isid.co.jp>



Seasar-user メーリングリストの案内