10

私のアプリケーションは、Spring framework 3.1.2に展開されたベースの Web アプリケーションですApache tomcat 6

アプリケーション(サーバー)の起動時に、実行中のアプリケーションのポート番号ホスト名を取得する必要があります。そのため、プロパティでそれをオーバーライドし、その他の Bean の初期化に必要です。

スプリングは、これらの詳細を取得し、サーバーの起動時に設定するオプションを提供していますか?..

4

4 に答える 4

6

以前に尋ねられた 2 つの質問を見てみましょう: Get the server port number from tomcat without a request and I need to know the HTTP and HTTPS port my Java webapp is running on webapp startup . そこには、コネクタからポートを取得する方法が表示されます。コネクタには、ホスト名を提供する getDomain メソッドもあります。

スプリングなしで取得する方法を知っているので、それらの詳細を取得し、それらのインスタンス化の詳細を必要とする他の Bean にそれらを提供する Bean を持つことができます。これを行うにはいくつかの方法があります。

1)ポート、ホスト名を取得し、必要なBeanをインスタンス化するSpringファクトリーBeanを作成します

2)それらの詳細を保持する別のBeanを用意し、そのBeanを使用して他のBeanを構築します

3)アプリケーションの詳細をポートとドメインでオーバーライドし、それらを必要とするBeanをインスタンス化するときに、新しいBeanのためにそれらを読み取るinitメソッドを持っています

于 2012-12-18T09:03:17.813 に答える
-3

デフォルトでは、Tomcat は TCP/IP ポート番号 で実行されます8080

手順

  1. C:\apache-tomcat-6.0.18\conf\server.xml(Tomcat をインストールした場所) に移動します。
  2. server.xml ファイルで、次のようなコネクタ ポートを見つけます。

    <connector port="8080" protocol="HTTP/1.1" connectiontimeout="20000" redirectport="8443">     
    
    </connector>
    

Connector タグの port はポート番号です。

ホスト名の検索:

手順

1. Navigate to `C:\WINDOWS\system32\drivers\etc` 

または

start->All Programs->Run-> type 'drivers' (引用符なし)->etc

  1. テキストエディタでファイルホストを開くと、見つけることができます
127.0.0.1       localhost

これにより、ホスト名が何であるかを理解できます。

ありがとう。

于 2012-12-18T08:51:32.293 に答える
-4

doGet または doPost メソッドに渡された ServletRequest オブジェクトには、この情報を提供するgetServerName()およびメソッドがあります。getServerPort()

例:

public void doGet(ServletRequest request, ServletResponse response) {
    System.out.println("Host Name = " + request.getServerName());
    System.out.println("Port Number = " + request.getServerPort());
}
于 2012-12-18T09:46:31.997 に答える