2011-12-30 16 views
2

を私は私はテストのために、それにメッセージを送ることができますので、私は自分のサーバーアドレスを取得するにはどうすればよいは私のサーバーアドレスの取得 - 桟橋ウェブサーバ

Server server = new Server(8080); 

(org.mortbay.jetty.Serverから)桟橋サーバーを使用していますか?おかげさまで

+0

サーバーはマルチホームですか?あなたは仮想ホストを使いますか?答えはこれらの要因によって異なります – fge

答えて

6

使用java.net.InetAddress

InetAddress addr = InetAddress.getLocalHost(); 

// Get IP Address 
byte[] ipAddr = addr.getAddress(); 

// Get hostname 
String hostname = addr.getHostName(); 
1

私はあなたの質問について少し困惑しています。 Jettyサーバーを起動して埋め込むと、アドレスは常に "localhost"(マシンのループバックインターフェイス)になります。ポートは、Serverインスタンスを作成するときに選択したポートになります。だから、あなたの例のために、あなたの組み込みのJettyサーバーは、いずれにしても

http://localhost:8080 

になります、あなたはまた、このような桟橋の現在の(ローカル)ポート番号を取得することができます。これは、統合のために有用である可能性があり

int jettyPort = server.getConnectors()[0].getLocalPort(); 

をテストでは、JUnitルールなどのテストツールを使用してランダムなポートにJettyを埋め込み、その後、テストでこのJettyインスタンスを使用するときに、起動したポートを知る必要があります。

+1

Jetty 9を使用している場合、これは動作しません。コネクターをServerConnectorにキャストする必要があります。 –

+0

@SteveNありがとう –

関連する問題