[Seasar-user:7734] s2Axis2でbaseURLをrequestごとに変更する方法について
koichi
[E-MAIL ADDRESS DELETED]
2007年 5月 21日 (月) 22:34:39 JST
お世話になります。koichiです。
S2_2.3.12,S2Axis2_0.2.0,strutsを勉強中です。。。
共通の処理を継承させた別々のサービスを、クライアントから呼び分けたいためbaseURL相当部分を動的に置き換えたいと思っています。
[Seasar-user:6739] s2Axis baseURLを置き換える方法はありますか http://ml.seasar.org/archives/seasar-user/2007-March/008654.html
上の内容を読みまして、AxisInOutConnectorのbaseURLを直接置き換えてやればいいかなと思い、試しに以下のようにしてみました。
diconは以下のように設定し <component name="ioRemoting" class="org.seasar.remoting.common.interceptor.RemotingInterceptor"> <property name="connector">ioConnector</property> </component>
<component name="ioConnector" class="org.seasar.remoting.axis2.connector.AxisInOutConnector"> <property name="baseURL">baseURL</property> </component> <component name="baseURL" class="java.net.URL" autoBinding="none"> <arg>"http://hogehoge"</arg> </component> <component name="XXXXX" class="・・・.XXXXX"> <aspect>ioRemoting</aspect> </component>
ActionのexecuteAction中で
XXXXX xxx = (XXXXX)container.getComponent(XXXXX.class); AxisInOutConnector connector = (AxisInOutConnector)container.getComponent("ioConnector"); connector.setBaseURL(new URL(XXXForm.getBaseURL())); xxx.○○();
一応これでクライアントで動的に指定したサービスを呼べました。しかし、デフォルトでは各インスタンス(ioConnector等)がSingletonだと思うので、これをrequest単位にできないかなと思っています。(containerはstaticに持っています)
S2AOPのFAQには「アスペクト (インターセプタ) を singleton 以外にすることはできますか?」http://www.seasar.org/wiki/index.php?FAQ%2FS2AOP#i45fc6c8というQAがありInterceptorAdapterを使用する例が載せられてあったので参考にしたのですが例がInterceptorをprototypeにする場合ということと、AxisInOutConnectorも関係することから全てrequest単位にする方法がわかりませんでした。(ioConnectorがprototypeでは、getComponent(XXXXX.class)に対してsetBaseURLが効かないと考えています。)
XXXXX,ioRemoting,ioConnectorのインスタンスをrequest単位にする方法、またはもともとのbaseURLを切り替えるという目的を達成する別の方法があれば教えてください。
よろしくお願い致します。
_________________________________________________________________
懐かしネタと珍しネタ満載の「らいぶ寿司」 24時間無料大回転中
http://livesushi.jp/
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20070521/c84b6fb1/attachment.html
Seasar-user メーリングリストの案内