[Seasar-user:17714] DaoMetaDataFactoryImpl)のプロパティ(statementFactory)の自動設定に失敗しました

吉村 実 [E-MAIL ADDRESS DELETED]
2009年 6月 11日 (木) 18:42:41 JST


よしむらです。

Seasar2.3 + S2Struts 1.2 + Struts 1.2
から
Seasar2.4 + S2Struts 1.3 + Struts 1.3
への移行を試みております。

下記、エラーと外出しのdao,dicon
になります。

御助言頂けたましたら幸いです。


【ログ】
ERROR 2009-06-11 18:16:44,458 [main] StandardWrapper.Throwable
org.seasar.framework.container.IllegalAutoBindingPropertyRuntimeException:
[ESSR0080]クラス(org.seasar.dao.impl.DaoMetaDataFactoryImpl)のプロパティ
(statementFactory)の自動設定に失敗しました
	at
org.seasar.framework.container.assembler.BindingTypeMustDef.doBind(BindingTy
peMustDef.java:56)
	at
org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(Abstrac
tBindingTypeDef.java:78)
	at
org.seasar.framework.container.assembler.AccessTypePropertyDef.bind(AccessTy
pePropertyDef.java:50)
	at
org.seasar.framework.container.assembler.AccessTypePropertyDef.bind(AccessTy
pePropertyDef.java:41)
	at
org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(Auto
PropertyAssembler.java:56)
	at
org.seasar.framework.container.deployer.SingletonComponentDeployer.assemble(
SingletonComponentDeployer.java:68)
	at
org.seasar.framework.container.deployer.SingletonComponentDeployer.deploy(Si
ngletonComponentDeployer.java:48)
	at
org.seasar.framework.container.deployer.SingletonComponentDeployer.init(Sing
letonComponentDeployer.java:76)
	at
org.seasar.framework.container.impl.ComponentDefImpl.init(ComponentDefImpl.j
ava:236)
	at
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.jav
a:563)
	at
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.jav
a:560)
	at
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.jav
a:560)
	at
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.jav
a:560)
	at
org.seasar.framework.container.impl.S2ContainerImpl.init(S2ContainerImpl.jav
a:560)
	at
org.seasar.framework.container.factory.SingletonS2ContainerFactory.init(Sing
letonS2ContainerFactory.java:150)
	at
org.seasar.framework.container.servlet.SingletonS2ContainerInitializer.initi
alize(SingletonS2ContainerInitializer.java:55)
	at
org.seasar.framework.container.servlet.S2ContainerServlet.initializeContaine
r(S2ContainerServlet.java:139)
	at
org.seasar.framework.container.servlet.S2ContainerServlet.init(S2ContainerSe
rvlet.java:127)
	at javax.servlet.GenericServlet.init(GenericServlet.java:212)
	at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:11
39)
	at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
	at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:
3956)
	at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
	at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
60)
	at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:
544)
	at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
	at
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553
)
	at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
	at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.
java:311)
	at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:120)
	at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
	at
org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
	at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at
org.apache.catalina.core.StandardService.start(StandardService.java:448)
	at
org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)



【dao.dicon】
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
	"http://www.seasar.org/dtd/components21.dtd">
<components namespace="dao_ttz">
	<include path="jdbc.dicon"/>

	<component
		name="annotationReaderFactory"

class="org.seasar.dao.annotation.tiger.impl.AnnotationReaderFactoryImpl"/>

	<component
		class="org.seasar.dao.impl.ValueTypeFactoryImpl"/>
	<component
		name="stringClobType"
		class="jp.go.XXXX.common.jdbc.types.StringClobType"/>
	<component
		name="resultSetFactory"
		class="org.seasar.dao.pager.PagerResultSetFactoryWrapper">
		<arg>
			<component
class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
		</arg>
		<property name="useScrollCursor">true</property>
	</component>

	<component class="org.seasar.dao.impl.BeanMetaDataFactoryImpl"/>
	<component class="org.seasar.dao.impl.DaoNamingConventionImpl"/>
	<component class="org.seasar.dao.impl.NullBeanEnhancer"/>
	<component
class="org.seasar.dao.impl.ResultSetHandlerFactorySelector"/>
	<component class="org.seasar.dao.impl.DtoMetaDataFactoryImpl"/>
	<component
class="org.seasar.dao.impl.PropertyTypeFactoryBuilderImpl"/>
	<component
class="org.seasar.dao.impl.RelationPropertyTypeFactoryBuilderImpl"/>
	<component class="org.seasar.dao.impl.DefaultTableNaming"/>
	<component class="org.seasar.dao.impl.DefaultColumnNaming"/>
	<component
class="org.seasar.dao.impl.ProcedureMetaDataFactoryImpl"/>

	<!-- 作業DB用 -->
	<component
		name="daoMetaDataFactory"
		class="org.seasar.dao.impl.DaoMetaDataFactoryImpl">
		<arg>jdbc.dataSource</arg>
		<arg>
			<component
class="org.seasar.dao.pager.PagerStatementFactory"/>
		</arg>

		<arg>resultSetFactory</arg>
		<arg>annotationReaderFactory</arg>
	</component>

	<component name="interceptor"
		class="org.seasar.dao.pager.PagerS2DaoInterceptorWrapper">
		<arg>
			<component name="s2dao"

class="org.seasar.dao.interceptors.S2DaoInterceptor">
				<arg>daoMetaDataFactory</arg>
			</component>
		</arg>
	</component>

	<!-- 運用DB用 -->
	<component
		name="daoMetaDataFactoryForOperate"
		class="org.seasar.dao.impl.DaoMetaDataFactoryImpl">
		<arg>jdbc.dataSourceForOperate</arg>
		<arg>
			<component
class="org.seasar.dao.pager.PagerStatementFactory"/>
		</arg>
		<arg>resultSetFactory</arg>
		<arg>annotationReaderFactory</arg>
	</component>

	<component name="interceptorForOperate"
		class="org.seasar.dao.pager.PagerS2DaoInterceptorWrapper">
		<arg>
			<component name="s2dao"

class="org.seasar.dao.interceptors.S2DaoInterceptor">
				<arg>daoMetaDataFactoryForOperate</arg>
			</component>
		</arg>
	</component>

</components>
















> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED]
> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of
> Koichi Kobayashi
> Sent: Thursday, June 11, 2009 6:00 PM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:17710] Re: 複数データソース時のEntityManagerの挙動に
ついて
>
> 小林 (koichik) です.
>
> Date:    Thu, 11 Jun 2009 17:42:44 +0900
> From:    duran <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:17709] Re: 複数データソース時のEntityManagerの挙動に
ついて
>
> > > EntityManager 自体も DataSource ごとに
> > > 必要なはずですが,
> > リファレンスを見ましたが、EntityManagerの設定に関しては、
> > 見つけれませんでした。
>
> すみません,EntityManager は Dao ごとに
> new しているようなので,DaoMetaDataFactory が
> DataSrouce ごとに必要ですね.
>
> > > ・片方の EntityManager だけが使われている
> > > ・両方の EntityManager が片方の DataSource を使っている
> > >
> > > のどちらなのか確認してみてください.
> > すいません。
> > どこを確認すれば良いのか分かりません。
>
> DaoMetaDataFactory を定義している dicon が
> DataSrouce ごとにあって,それぞれが jdbc.dicon
> ではなく xxx_jdbc.dicon をインクルードしてるなら
> 前者 (片方の DaoMetaDataFactory だけが使われている)
> でしょう.
> この場合は,Dao (AbstractDao) のコンストラクタに
> 適切な dicon に定義されている方の DaoMetaDataFactory が
> 渡されるように customizer.dicon で制御する必要が
> あります.
> 基本的に [Seasar-user:17631] と同じようなことを
> する必要があるはず.
>
> DaoMetaDataFactory を定義している dicon が
> 一つしかなくて,それが jdbc.dicon を
> インクルードしてるなら後者でしょう.
> その場合は dicon を分けた後に前者の場合と同じ
> 対応をすることになるかと.
>
>
> --
> <component name="koichik">
>     <property name="fullName">"Koichi Kobayashi"</property>
>     <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>     <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>



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