[Seasar-user:11125] Re: S2RMIを用いたコールバック登録
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 10月 19日 (金) 02:00:18 JST
小林 (koichik) です.
Date: Thu, 18 Oct 2007 23:47:34 +0900
From: 歌舞伎モモ <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:11123] Re: S2RMIを用いたコールバック登録
> S2RMIを用いず、
> 以下を参考に作成したRMIのコールバック登録は実現できたのですが、
> なぜか、S2RMIだと・・・
まず,S2RMI のサンプルとしてちゃんと動かしてから
コールバックを組み込むのが良かったのではないかと
思います.
よく見てみたら,[Seasar-user:11090] に添付された
コードでは S2RMI としてちゃんと動きません.
> @ServerMain.java
> public class ServerMain {
>
> public static void main(String[] args) {
> S2Container container =
> S2ContainerFactory.create("server.dicon");
> container.init();
> }
> }
S2RMI のサーバ側は S2RMI の配布ファイルに
含まれている s2rmi-examples-server を参考に
してほしいのですが,次のようになります.
public static void main(String[] args) {
GenericS2ContainerInitializer initializer = new GenericS2ContainerInitializer();
initializer.setConfigPath("server.dicon");
initializer.initialize();
}
> @ServiceImpl.java
> public class ServiceImpl extends UnicastRemoteObject implements Service
> {
S2RMI では,リモートオブジェクトは RMI の
リモートオブジェクトとして実装する必要は
ありません.POJO として実装してください.
詳細は以下のアーキテクチャを参照してください.
http://s2rmi.seasar.org/ja/user_guide/abstraction.html
> -----------------------------------
> Client側設定ファイル(client.dicon)
> -----------------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
> "http://www.seasar.org/dtd/components24.dtd">
> <components>
> <component name="Service"
> class="server.ServiceImpl">
> <aspect>remotingInterceptor</aspect>
> </component>
サービスの実装を登録してはいけません.
これのせいで,実際にはサーバ側の
ServiceImpl ではなく,クライアント側の
(ローカルの) ServiceImple が呼び出されて
しまっています.
前述のアーキテクチャを参照してください.
<component name="Service"
class="server.Service">
<aspect>remotingInterceptor</aspect>
</component>
以上の修正でサーバ側の ServiceImpl が
きちんと呼び出されるようになりました.
コールバックは試していませんが,それは
S2RMI とは基本的に関係がないのでそちらで
頑張ってみてください.
--
<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 メーリングリストの案内