[akabana-user:19] Re: 「S2Flex2」、「S2Factory for FDS2」の機能について

jun funakura jun.funakura @ gmail.com
2006年 10月 3日 (火) 04:13:36 JST


松村さん

ふなくらです。

> は、ダウンロードしたfds-s2factory-example中のapp.diconが、
>
> <!DOCTYPE components PUBLIC "-//SEASAR2.4//DTD S2Container 2.4//EN"
>     "http://www.seasar.org/dtd/components24.dtd">
>
> となっていたためのようです。
> SEASAR2.4 を SEASAR に修正すれば大丈夫でした。

ああっ(>_<)
ご指摘ありがとうございます。
たしかに間違いです。
直しておきます。

自作のサンプルの件については以下の点を教えていただけますでしょうか。

■パッケージ構成
2のサービスインターフェース実装クラスを作成しているところで"sample"を
サブパッケージにしたとすると、以下のような構成になっていますでしょうか?

WEB-INF/src/example/flex2/sample/service/HelloService.java
WEB-INF/src/example/flex2/sample/service/impl/HelloServiceImpl.java

serviceをパッケージに含めます。

■4.RemotingServiceの設定
app.diconと同じフォルダにある flex-services.xml はFDS2では不要です。
S2Flex2の移植を行ったときにまぎれてしまいました。
混乱させて申し訳ないです。


RemotingServiceの設定は、app.diconのMetaAutoRegisterで登録している
部分になります。
その跡に定義している、FileSystemRemotingServiceAutoRegisterが
s2Flex2でServiceとして展開できるようにしています。
(=Flex2クライアントから呼び出せるサービスとして登録)

Annotationを利用して定義するときには、ServiceクラスにRemotingService
アノテーションを指定します。

例)

@RemotingService
public class AddServiceImpl implements AddService {
:
:

RemoingServiceを指定するのに推奨する方法は以下の順番になります。
1.Annotation
2.Customizer
3.AutoRegister

松村さんの例ですと、HelloServiceImplに@RemotingSerivceを
書くことで対応できます。

ここまでいろいろ書きましたが、このサンプルを作成したときには
s2flex2はrc1以前でs2 container 2.4はrc-1でした。
現在は、s2flex2はrc-2であり、s2 container2.4はrc-2になっています。

これらの変更にS2Factory for FDSは追いついていない状態です。
現在s2flex2本体をはじめ関連プロジェクトを対応させている段階です。

対応後はdiconファイルなどは変更していただく
ことになってしまいます。
お手数をおかけしてしまうことになりますが、ご了承ください。

お試しいただくのにいろいろお手間をおかけして申し訳ありません。
鋭意対応していきたいと思いますので、今後もどうぞよろしくお願いいたします。


--
ふなくら




06/10/02 に matsumura-y @ jp.fujitsu.com<matsumura-y @ jp.fujitsu.com> さんは書きました:
> 松村です。
>
> ふなくら(nod)さん
> 度々すみません、もう一つお願いいたします。
>
> "jun funakura" <jun.funakura @ gmail.com>さん:
> > > また、現在「Flex2 + FDS2 + S2Flex2 + S2」でのサンプルを作ろうと思い、
> > > 「S2Factory for FDS2」をダウンロードし http://akabana.sandbox.seasar.org/ja/products/fds/index.html#
> > >  の通りに設定しましたが、うまく動かせません。
> > >
> > > Tomcat起動時に、
> > >
> > > flex.messaging.config.ConfigurationException: An error occurred trying to
> > > construct FlexFactory 'org.seasar.flex2.rpc.remoting.service.fds2.factory.
> > > Seasar2Factory'.   The underlying cause is: 'org.seasar.framework.exception.
> > > EmptyRuntimeException
> > >
> > > のエラーが出てしまいます。
>
> は、ダウンロードしたfds-s2factory-example中のapp.diconが、
>
> <!DOCTYPE components PUBLIC "-//SEASAR2.4//DTD S2Container 2.4//EN"
>     "http://www.seasar.org/dtd/components24.dtd">
>
> となっていたためのようです。
> SEASAR2.4 を SEASAR に修正すれば大丈夫でした。
>
> そして、
> add.mxmlにアクセスして実行すると足し算ができました。
>
> と、ここからが問題です。
> このプロジェクトに自作のサンプルを加えて実行してみたところ
>
> [RPC Fault faultString="[ESSR0044]クラスが見つかりませんでした。
> 詳細はjava.lang.ClassNotFoundException: helloService" faultCode="Server.
> Processing" faultDetail="null"] Class
>
> のエラーが出力されます。
>
> こちらで定義した手順は、
> 1.remoting-config.xmlに、mxmlのリモートオブジェクト名を追加
>
>     -- mxml側 --
>     <mx:RemoteObject id="ro" destination="helloService" result="
> resultHandler(event)"/>
>
>     -- remoting-config.xml側 --
>     <destination id="helloService">
>         <properties>
>             <factory>s2</factory>
>         </properties>
>     </destination>
>
> 2.リモートオブジェクト用のサービスインタフェース・実装クラスを作成
>
>     app.diconの定義がそのまま使えるよう(fds-s2factory-exampleに合わせ)
>     WEB-INF/src/examples/flex2 の下にsampleサブパッケージを作成し
>     HelloServiceインタフェース、impl/HelloServiceImplクラスを作成
>
> 3.flex2_example-cooldeploy.diconへのサブパッケージ定義追加
>
>     先ほど作ったsampleサブパッケージ名の定義を追加
>
>     <component name="sampleProject" class="org.seasar.framework.container.
> cooldeploy.impl.CoolProjectImpl">
>         <property name="rootPackageName">"examples.flex2.sample"</property>
>     </component>
>
>     とその下の、CoolComponentAutoRegister の中に
>         <initMethod name="addProject">
>             <arg>sampleProject</arg>
>         </initMethod>
>     を追加
>
> 4.RemotingServiceの設定
>
>     app.diconと同じフォルダにある flex-services.xml の serviceタグの中に
>
>             <destination id="helloService">
>                 <properties>
>                     <source>helloService</source>
>                     <service-name>helloService</service-name>
>                 </properties>
>                 <channels>
>                     <channel ref="s2-amf"/>
>                 </channels>
>             </destination>
>
>     を追加
>     これがいまいち分かっていません・・・。
>     マニュアルページの中には、「Metaタグ」か「Annotation」で定義すると
>     書かれています。
>
> 以上です。
> なにかお気づきになりましたら、ご返答お願いいたします。
>
> お忙しいところ申し訳ございませんが、よろしくお願いいたします。
>
> +--------------------------------------------------------------------+
>  (株)富士通東北システムズ
>    プラットフォームビジネス統括部 システム基盤ビジネス部
>    松村 泰久(Matsumura Yasuhisa)
>    Mail:matsumura-y @ jp.fujitsu.com
>    TEL:022-292-5031  FAX:022-292-5046
> +--------------------------------------------------------------------+
> _______________________________________________
> akabana-user mailing list
> akabana-user @ ml.seasar.org
> https://www.seasar.org/mailman/listinfo/akabana-user
>


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