2017-02-09 9 views
0

サーバの起動時にWebアプリケーションのIPとポートを取得したいのですか?例えば、私のServletContextListenerクラスの中で。しかし、私はFaceContextとServletContextEventのどちらも使用していませんでした。ServletContextListenerでWebアプリケーションのIPとポートを取得

FacesContext.getCurrentInstance().getExternalContext().getRequestServerName() 

上記のようなコードを使用すると、サポートされない方法が発生します。

アプリケーションの開始から実行されるスレッドが必要なため、リクエストがサーバーに送信されるまで待つことができませんでした。

JSF2、primefaceとあなたがこのように、HttpServletRequestのにアクセスする必要があるのWebLogic 10.3.6

答えて

2

上で実行使用して当社のアプリケーション:誰かが送っまで我々は待つことができなかった私は、その前に言及

HttpServletRequest request = ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()); 
request.getLocalAddr(); 
request.getLocalPort(); 
+0

ERHのdidntを私たちのサーバーへのリクエスト?私たちのサーバーの始めに必要なので、getRequestはnullで返されるので、この答えはうまく動作しません。 – mameo

+0

ああ、そうです。私はその部分を見逃していました...どのIPにアクセスするための標準的な方法はありません。どのポートがWebサーバーによってアプリケーションから公開されていますか?実際、複数のポートに1つのWebアプリケーションを公開するようにWebサーバーを構成することができます。おそらくWebLogicにはこれを行うためのAPIがありますが、私は気づいていません。おそらくあなたがIPとポートを見つける必要がある_why_を明らかにすれば、我々は巧妙な解決策を思い付くことができます... –

+0

我々はそれぞれがファイルを作成するスレッドを持っている複数のサーバーを持っています。これらのスレッドは、通常は深夜に開始するサーバーの起動時に開始され、ユーザーはその時にログインしません。愚かな理由のため、私たちはFTPやサンストレージのような共有リソースを持っていなかったので、各サーバーは自分のサーバー上にファイルを作成します。したがって、ユーザーがサーバーAにログインしたときにファイルがサーバーBにある場合、ユーザーはファイルを取得できるようにサーバーBのリンクが必要です。そんな感じ。 – mameo

関連する問題