0

現在、WebLogic 10.3.0で実行されているAxis2でホストする一連の Web サービスを Java で開発しています。これらのWeb サービスは、SOAP メッセージを受信して​​返します。

WebLogicクラスタ化された環境を使用しているため、 WebLogicのサーバー名 (管理コンソールを使用して構成したもの) を応答メッセージ本文で返したいと考えています。これをプログラムまたは管理コンソールで構成する方法はありますか?

これを解決するためにあなたの助けを前もってありがとう!

4

1 に答える 1

2

次のように、localhost 経由でサーバーの名前を取得できます。

String hostname = InetAddress.getLocalHost().getHostName();

アップデート

上記は、それが実行されているサーバーの名前を返すため、Web サービス ホストの名前になります。

Web サービスの前にサーバーの名前が必要な場合は、リクエストから取得できます。

String hostname = request.getRemoteHost();

トリックを行う必要があります。リモート ホスト名は、ソケット クライアントが接続を確立するために使用したものであることに注意してください。これは DNS 名である必要はありません。DNS 名が必要な場合は、次を使用できます。

String hostname = InetAddress.getByName(request.getRemoteAddr()).getHostName();

更新 2

サーバー (解決策 1) または転送プロキシ (解決策 2) に関連するものではなく、一種の論理クラスター名に関連するものである場合は、web.xml でコンテキスト パラメーターとして定義できます。

<context-param>
    <param-name>clustername</param-name>
    <param-value>OurPrettyCluster</param-value>
</context-param>

サーブレットでそれを読んでください:

ServletContext context = getServletContext();
String clustername = context.getInitParameter("clustername");

これも役に立たない場合は、質問を更新してクラスター構成を説明する必要があります。これは、与えられた情報ではそれ以上のことができないためです。

于 2010-01-18T10:47:13.707 に答える