- PR -

Axis サーブレットへのパラメータ

1
投稿者投稿内容
未記入
会議室デビュー日: 2007/10/22
投稿数: 3
投稿日時: 2007-10-22 14:40
Axisのサービスクラスへ、パラメータを渡す方法を探しています。
クライアントからの引数ではなく、例えば、Web.xmlの<init-param>記述のような使いかたができればと思っています。

方法などご存知の方いらっしゃいましたら、ご教授お願いいたします。
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2007-10-22 17:22
Axisのサービスも所詮サーブレットなので、普通のサーブレットと同じようにWeb.xmlの<init-param>でパラメータが渡せると思うのですが、ダメですか?

#ん?「Axisのサービスクラス」=「org.apache.axis.transport.http.AxisServlet」じゃないのかな?
#「目的」を書いて質問すると推論もしやすいんですが・・・
未記入
会議室デビュー日: 2007/10/22
投稿数: 3
投稿日時: 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からパラメータを振って、
違う振舞いを実現したいと考えています。
(もう少し具体的に書くと、同じサービスを複数企業に提供するため、複数サービスを各企業の設定ごとに立ち上げたいと思っています。)
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-10-23 11:33
DIコンテナをうまく活用すれば綺麗に構成できそうですね。
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2007-10-23 12:21
ふむ。理解しました。

サービス実装から親(AxisServlet)のServletContextを取り出す方法がAxisプロジェクトページの「FAQ/Wiki」の中にあります。
http://wiki.apache.org/ws/FrontPage/Axis/ServletContext

例の中でHttpServletも取り出しているので、これで解決できると思います。
未記入
会議室デビュー日: 2007/10/22
投稿数: 3
投稿日時: 2007-10-23 13:11
nagise 様
DIコンテナについて、あまり詳しくは無いのですが、調べてみました。
たしかに、うまく活用すれば構想を実現できそうですが、
いささかシステムが複雑になってしまう懸念もあり、見送らせていただきます。


Java僧 様
たびたびのご回答ありがとうございます。
FAQを参考にし、親(AxisServlet)からプロパティを取得することができたため、
axisのWeb.xmlに<init-param>を記述することにより、無事解決しました。


ご回答して頂いた皆様、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)