- - PR -
Axis サーブレットへのパラメータ
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-10-22 14:40
Axisのサービスクラスへ、パラメータを渡す方法を探しています。
クライアントからの引数ではなく、例えば、Web.xmlの<init-param>記述のような使いかたができればと思っています。 方法などご存知の方いらっしゃいましたら、ご教授お願いいたします。 |
|
投稿日時: 2007-10-22 17:22
Axisのサービスも所詮サーブレットなので、普通のサーブレットと同じようにWeb.xmlの<init-param>でパラメータが渡せると思うのですが、ダメですか?
#ん?「Axisのサービスクラス」=「org.apache.axis.transport.http.AxisServlet」じゃないのかな? #「目的」を書いて質問すると推論もしやすいんですが・・・ |
|
投稿日時: 2007-10-23 09:31
ご回答ありがとうございます。
誤解を招く書き方で申し訳ありません。 「Axisのサービスクラス」=「org.apache.axis.transport.http.AxisServlet」ですが、 パラメータを渡したいのは、「Axisが管理する自前のサービスクラス(例Hello.class)」です。 このクラスは、Axisの設定ファイルである「server-config.wsdd」に登録します。 自前クラス(Hello.class)は、HTTPServletもAxisServletも継承していないため、 <init-param>が使えなくて困っていました。 目的は、同一のTomcatに複数Axisサービスを登録し、それぞれのAxisは同じHello.classを登録します。 このままだとHello.classはみな(当然)同じ動きをするので、それぞれのAxisからパラメータを振って、 違う振舞いを実現したいと考えています。 (もう少し具体的に書くと、同じサービスを複数企業に提供するため、複数サービスを各企業の設定ごとに立ち上げたいと思っています。) |
|
投稿日時: 2007-10-23 11:33
DIコンテナをうまく活用すれば綺麗に構成できそうですね。
|
|
投稿日時: 2007-10-23 12:21
ふむ。理解しました。
サービス実装から親(AxisServlet)のServletContextを取り出す方法がAxisプロジェクトページの「FAQ/Wiki」の中にあります。 http://wiki.apache.org/ws/FrontPage/Axis/ServletContext 例の中でHttpServletも取り出しているので、これで解決できると思います。 |
|
投稿日時: 2007-10-23 13:11
nagise 様
DIコンテナについて、あまり詳しくは無いのですが、調べてみました。 たしかに、うまく活用すれば構想を実現できそうですが、 いささかシステムが複雑になってしまう懸念もあり、見送らせていただきます。 Java僧 様 たびたびのご回答ありがとうございます。 FAQを参考にし、親(AxisServlet)からプロパティを取得することができたため、 axisのWeb.xmlに<init-param>を記述することにより、無事解決しました。 ご回答して頂いた皆様、ありがとうございました。 |
1