[Seasar-user:7098] Re: [S2Dao] SMART Deployで複数DBへ接続

松崎 学 [E-MAIL ADDRESS DELETED]
2007年 4月 6日 (金) 22:00:41 JST


加藤さん

松崎です。返信ありがとうございます。

jdbc2.diconに定義した接続に対する検索を行いましたが、
以下のエラーが出て動きませんでした。。。
また、jdbc.diconに定義した接続に対する検索を行っても
そちらにはコネクションが張られていなかったので、
テーブルが存在せず検索がエラーになります。

java.lang.NullPointerException: beanClass
	at org.seasar.dao.impl.BeanMetaDataFactoryImpl.createBeanMetaData(BeanMetaDataFactoryImpl.java:74)
	at org.seasar.dao.impl.BeanMetaDataFactoryImpl.createBeanMetaData(BeanMetaDataFactoryImpl.java:68)
	at org.seasar.dao.impl.DaoMetaDataImpl.initialize(DaoMetaDataImpl.java:142)
	at org.seasar.dao.impl.DaoMetaDataFactoryImpl.createDaoMetaData(DaoMetaDataFactoryImpl.java:120)
	at org.seasar.dao.impl.DaoMetaDataFactoryImpl.getDaoMetaData(DaoMetaDataFactoryImpl.java:102)
	at org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:51)
	at org.seasar.dao.pager.PagerS2DaoInterceptorWrapper.invoke(PagerS2DaoInterceptorWrapper.java:64)
	at hogehoge.dao2.M_SYAINDao$$EnhancedByS2AOP$$1570945$$MethodInvocation$$getBySyainCode0.proceed(MethodInvocationClassGenerator.java)
	at org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:59)
	at hogehoge.dao2.M_SYAINDao$$EnhancedByS2AOP$$1570945$$MethodInvocation$$getBySyainCode0.proceed(MethodInvocationClassGenerator.java)
	at hogehoge.dao2.M_SYAINDao$$EnhancedByS2AOP$$1570945.getBySyainCode(M_SYAINDao$$EnhancedByS2AOP$$1570945.java)
	at hogehoge.dao2.M_SYAINDaoTest.test001(M_SYAINDaoTest.java:62)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at junit.framework.TestCase.runTest(TestCase.java:164)
	at org.seasar.framework.unit.S2FrameworkTestCase.doRunTest(S2FrameworkTestCase.java:305)
	at org.seasar.extension.unit.S2TestCase.doRunTest(S2TestCase.java:92)
	at org.seasar.framework.unit.S2FrameworkTestCase.runBare(S2FrameworkTestCase.java:190)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:120)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

以上、よろしくお願い致します。

On Fri, 6 Apr 2007 20:40:24 +0900
加藤 潤一 <[E-MAIL ADDRESS DELETED]> wrote:

> 松崎さん
> 
> 加藤です.
> 
> うーん,実はまだテストしていないのですが,たぶん以下でできるかと思います.
> 
> 
> 1)Creatorの作成
> public class Dao2Creator extends ComponentCreatorImpl {
> 
>         /**
>          * Dao2用のクリエータを返します。
>          *
>          * @param namingConvention
>          */
>         public Dao2Creator(NamingConvention namingConvention) {
>                 super(namingConvention);
>                 setNameSuffix(namingConvention.getDaoSuffix());
>                 setInstanceDef(InstanceDefFactory.PROTOTYPE);
>                 setEnableInterface(true);
>                 setEnableAbstract(true);
>         }
> 
>         /**
>          * Dao2用のカスタマイザを返します。
>          *
>          * @return
>          */
>         public ComponentCustomizer getDao2Customizer() {
>                 return getCustomizer();
>         }
> 
>         /**
>          * Dao2用のカスタマイザを設定します。
>          *
>          * @param customizer
>          */
>         public void setDao2Customizer(ComponentCustomizer customizer) {
>                 setCustomizer(customizer);
>         }
> }
> 
> 
> 2)diconファイルへの登録
> 
> creator.dicon
>         <component class="hogehoge.creator.Dao2Creator"/>
> 
> customizer.dicon
>         <component name="dao2SupportAspectCustomizer" class="org.seasar.framework.container.customizer.AspectCustomizer">
>                 <property name="interceptorName">"dao2.interceptor"</property>
>         </component>
>         <component name="dao2Customizer" class="org.seasar.framework.container.customizer.CustomizerChain">
>                 <initMethod name="addCustomizer">
>                         <arg>defaultCustomizer</arg>
>                 </initMethod>
>                 <initMethod name="addCustomizer">
>                         <arg>dao2SupportAspectCustomizer</arg>
>                 </initMethod>
>         </component>
> 
> 3) dao2.interceptorを定義
> 
> dao.diconをこぴって,dao2.diconにします.
> この部分を
> <components namespace="dao2">
>         <include path="j2ee2.dicon"/>
> に修正してください.
> 
> j2ee.diconをこぴってj2ee2.diconに修正
> この部分を
> <include path="jdbc2.dicon"/>
> に修正してください.
> 
> jdbc.diconをこぴって,jdbc2.diconに.
> ここで,二つ名のDBの設定を行います.
> 
> 3)Dao2用のDaoを作成
> ルートパッケージ名.dao2にxxxDaoを置く.
> 
> 
> よろしくお願いいたします.
> 
> > -----Original Message-----
> > From: [E-MAIL ADDRESS DELETED]
> > [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of 松崎 学
> > Sent: Friday, April 06, 2007 8:27 PM
> > To: [E-MAIL ADDRESS DELETED]
> > Subject: [Seasar-user:7093] [S2Dao] SMART Deployで複数DBへ接続
> >
> > 松崎です。お世話になります。
> >
> > Doltengで作成したChuraプロジェクト(Teeda+S2Dao)で開発をしています。
> >
> > このメーリングリストの以下の質問を参考にして
> > 複数DBへ接続をしようとしてるのですが、うまくいきません。。。
> > > [Seasar-user:6876] Re: [S2Dao] 複数データソースに対応させたい
> >
> > Seasar2.3系で開発していた時も同じ要件があったのですが、
> > 以下のページを見て解決できました。
> > http://www.seasar.org/wiki/index.php?FAQ%2FS2DAO#q70fa8ce
> >
> > 上記の質問でひがさんが
> > > rootpackage.dao2.HogeDao2
> > > に置くようにし、Dao2CreatorとDao2用のCustomizerを追加すると
> > > SMART deploy的にはうまくいくはずです。
> > と回答されていますが、どなたか具体的なdiconファイルの書き方を
> > 教えていただけないでしょうか?
> > お恥ずかしいのですが、内容が理解できないです。。。
> >
> > S2DaoのFAQにも追記していただけるとありがたいです。
> >
> > 以上、よろしくお願い致します。
> >
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user





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