[Seasar-user:7989] Re:s2Axis2でbaseURLをrequestごとに変更する方法について
koichi
[E-MAIL ADDRESS DELETED]
2007年 5月 31日 (木) 22:48:51 JST
たかのり様
koichiです。お世話になります。
(前回の返信が別スレッドになってしまい申し訳ございません。
と書きつつ、このメールがどうなるか不安なのですが・・・)
>>> 共通の処理を継承させた別々のサービスを、クライアントから呼び分けたいため
>>> baseURL相当部分を動的に置き換えたいと思っています。
>> 現状の機能では、クライアントの処理で、> 動的にURLを設定することはできないのですが、
>もしかすると方法があるかもと思っていたのですが・・・
>でも、気持ちよく次の行動に移れます^^;
と書いたのですが、
diconファイルを使用しないでアスペクトを組み込む方法というコラムを読んだので
以下を試してみました。
------------------------------------------------------
【s2axis2-client.dicon】 0.3.0にしました^^
<components>
<component class="org.apache.axis2.description.AxisService" autoBinding="none"/>
<component name="ioRemoting" instance="prototype" class="hoge.org.seasar.remoting.common.interceptor.HogeRemotingInterceptor">
<initMethod name="setConnector">
<arg>connector</arg>
</initMethod>
</component>
<component name="connector" instance="prototype" class="org.seasar.remoting.axis2.connector.AxisInOutConnector">
<property name="baseURL">new java.net.URL("http://interimURL/")</property>
</component>
</components>
【クライアントでサービスのコンポーネントを取得する処理】
* @param iface インターフェイスクラス
* @param baseURL サービスのベースURL
protected Object getComponent(Class iface, String baseURL) throws MalformedURLException {
HogeRemotingInterceptor interceptor = (HogeRemotingInterceptor)container.getComponent("ioRemoting");
interceptor.setConnectBaseURL(new URL(baseURL)); ←connectorのbaseURLを変更するメソッド
interceptor.setRemoteName(iface.getSimpleName());
// 手動でアスペクトを組み込む
Aspect aspect = new AspectImpl(interceptor, new PointcutImpl(iface));
AopProxy aopProxy = new AopProxy(iface, new Aspect[]{aspect});
return aopProxy.create();
}
------------------------------------------------------
一応毎回baseURLを変更できるようなのですが、
s2axis2、s2等の内部処理については、一部をわかったような気になっているだけという状態です。
それで何か問題が問題が発生する可能性があれば指摘していただければ幸いです。
よろしくお願いします。
_________________________________________________________________
人気タレントや俳優、アーティストなど著名人の「Live.jp」を一挙公開!
http://mylivestory.jp
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20070531/a93a5b5a/attachment.html
Seasar-user メーリングリストの案内