アプリケーション構成:
- 注釈付きの JAX-WS 2.0 Web サービスを作成する Java の最初の方法を使用する Web アプリケーション。
- WebLogic 10.3
私の要件
私が持っている要件は、単一の Web サービス実装クラスをデプロイすることですが、サービスへのアクセス元の URL に基づいてロジックを変更することです。
質問: これを行う良い方法は、web.xml にさまざまなマッピングを展開し、さまざまなパラメーターでそれらを初期化することだと思います。より良い方法はありますか?
Web サービスへのアクセス元の URL からロジックをオフにする最善の方法は何ですか? 初期化パラメーターを使用して web.xml で 2 つのサーブレット マッピングを構成する必要がありますか (試してみましたが、機能しませんでした)、サービス実装で URL を解析する必要がありますか? 他の選択肢はありますか?
私が試したこと(しかしうまくいかなかった)
web.xml<init-param>
の要素にを追加しようとしました。<servlet>
ただし、ServletConfig
Web サービス内のオブジェクトにアクセスしてパラメーターを取得することはできません。Web サービスには、標準のすべての機能が備わっているわけではありません(またはServlet
を実装したとしても)。私は(そう思われる)にしかアクセスできず、そこからは要素しか取得できませんが、代わりに要素が必要になります。Servlet
ServletContextListener
WebServiceContext
<context-param>
<init-param>
web.xml では<servlet>
、同じ Java クラスを使用して 2 つの要素を入力しますが、これらは次のように 2 つの異なる URL にマップされます。各サーブレット マッピングで「ソース」パラメータがどのように異なるかに注目してください。
<servlet>
<servlet-name>Foo</servlet-name>
<servlet-class>com.Foo</servlet-class>
<init-param>
<param-name>source</param-name>
<param-value>1</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Foo</servlet-name>
<url-pattern>/Foo</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Bar</servlet-name>
<servlet-class>com.Foo</servlet-class>
<init-param>
<param-name>source</param-name>
<param-value>2</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Bar</servlet-name>
<url-pattern>/Bar</url-pattern>
</servlet-mapping>