[Seasar-user:11690] Re: 【S2RMI】 Implファイルがあるとリモート実行されない

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2007年 11月 17日 (土) 15:14:49 JST


関修康です。

アドバイスして頂きました方法を試してみました。
もし取り違えていればすみません。

■examples.commons.interceptor.RemotingInterceptor クラスを作成
※ org.seasar.remoting.commons.interceptor.RemotingInterceptor を extends した同名ファイル

■convection.dicon を変更
<!-- 今回追記部分-->
<initMethod name="addRootPackageName">
  <arg>"examples.commons"</arg>
</initMethod>

<initMethod name="addRootPackageName">
  <arg>"examples.rmi"</arg>
</initMethod>
<initMethod name="addRootPackageName">
  <arg>"org.seasar.remoting.common"</arg>
</initMethod>
<initMethod name="addRootPackageName">
  <arg>"org.seasar.remoting.rmi"</arg>
</initMethod>

■creator.dicon はデフォルト
※ Helper,Interceptor,Service,Connector のCreator が存在

■customizer をRMI通信用に変更
※RMIの使い方通り

<include path="s2rmi-customizer.dion">

<component name="connectorCustomizer"・・省略・・>

<component name="serviceCustomizer"・・省略・・>




上記の方法で試しましたが、コネクターが見つからない例外が発生してしまいました

Caused by: org.seasar.framework.container.IllegalAutoBindingPropertyRuntimeException: [ESSR0080]クラス(examples.commons.interceptor.RemotingInterceptor)のプロパティ(connector)の自動設定に失敗しました
	at org.seasar.framework.container.assembler.BindingTypeMustDef.doBind(BindingTypeMustDef.java:56)
	at org.seasar.framework.container.assembler.AbstractBindingTypeDef.bind(AbstractBindingTypeDef.java:78)
	at org.seasar.framework.container.assembler.AccessTypePropertyDef.bind(AccessTypePropertyDef.java:50)
	at org.seasar.framework.container.assembler.AccessTypePropertyDef.bind(AccessTypePropertyDef.java:41)
	at org.seasar.framework.container.assembler.AutoPropertyAssembler.assemble(AutoPropertyAssembler.java:55)
	at org.seasar.framework.container.deployer.PrototypeComponentDeployer.deploy(PrototypeComponentDeployer.java:43)
	at org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:111)
	at org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:129)
	at org.seasar.framework.container.ognl.S2ContainerPropertyAccessor.getProperty(S2ContainerPropertyAccessor.java:36)
	at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1758)
	at ognl.ASTProperty.getValueBody(ASTProperty.java:92)
	at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:171)
	at ognl.SimpleNode.getValue(SimpleNode.java:211)
	at ognl.Ognl.getValue(Ognl.java:333)
	at ognl.Ognl.getValue(Ognl.java:310)
	at org.seasar.framework.util.OgnlUtil.getValue(OgnlUtil.java:95)
	... 21 more

convection.dicon の下記をコメントアウトすれば、ローカルのImplが実行されます。
<!-- 今回追記部分-->
<initMethod name="addRootPackageName">
  <arg>"examples.commons"</arg>
</initMethod>

原因が想像出来ないのですが、何かお気づきの点がありましたらよろしくお願いします。





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