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

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 11月 14日 (水) 22:00:15 JST


小林 (koichik) です.

Date:    Wed, 14 Nov 2007 18:19:12 +0900
From:    [E-MAIL ADDRESS DELETED]
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11647] 【S2RMI】 Implファイルがあるとリモート実行されない

> この状態で s2rmi-examples-client プロジェクト側に
> examples.rmi.service.impl.HelloServiceImpl
> のファイルを作成するとリモートで実行されずに
> clientだけで動作が完結されてしまいます。

RemotingInterceptor は,メソッドの実装があると
リモート呼び出しを行わず,サービスのメソッドが
実行されます.
これは S2Dao などでも同様で,Dao にメソッドの
実装があると S2Dao のインターセプタは何もせず,
Dao のメソッドが実行されます.

> serviceCustomizer に
> 
> <initMethod name="addIgnoreClassPattern">
>  <arg>examples.rmi</arg>
>  <arg>.*Impl</arg>
> </initMethod>

HelloService インタフェースを見つけたところで
その実装クラスを探してしまうため,これは効果が
ありません.

> 単純に関連するImplファイルを消す対応以外に何か方法があると思うのですが、
> ご助言頂ければと思います。

クライアントとサーバは Eclipse 等でいうところの
プロジェクト (および Jar) を分けてください.
インタフェースはクライアント側または共通の
プロジェクトに置き,実装はサーバ側の
プロジェクトに持つようにして,クライアントから
実装クラスが見えないようにしてください.


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




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