0

Jetty サーバーで実行されている Apache タペストリー アプリケーションがあります。そのため、実行中の HTTP サーバーのポート番号は、リクエスト オブジェクトからのリクエスト中に取得できます。しかし、プログラムの起動中にサーバーが実行されているポート番号を見つける必要があります (AppModule のどこか)。この情報をプログラムで取得する方法はありますか? サービスで @Symbol(SymbolConstants.HOSTPORT) String hostPort にアクセスしようとしましたが、これは機能しません。単に 0 を返します。どうやら 0 は、リクエストからポート番号を検索する必要があることを意味します。

私がそれを必要とする理由は、このアプリケーションが実行されているポート/IPアドレスを認識して呼び出すことができるように、他のサービスからアクセスできるデータベースにこの情報を書き込む必要があるためです。

4

1 に答える 1

0

javax.servletie . _ ServletRequest_getLocalPort()

Tapestry は、まだサーブレット仕様に含まれていないアプリケーション コンテナーに追加のハンドルを提供しません。

したがって、最初のリクエストが到着して使用するポートを保存するのを待つ必要があります (推奨)。または、ポート構成を複製する必要があります。1 回はコンテナーの構成 (jetty) で、もう 1 回はアプリケーション (AppModule、web.xml など) のどこかで行います。構成ファイル)。

3 番目のオプション (これは強くお勧めしません) は、タペストリー アプリケーション内からコンテナーの構成を検索することです。これをしないでください。

于 2012-11-22T11:09:10.357 に答える