2008-09-15 4 views
1

Tomcat 5.5では、server.xmlは多くのコネクタを持つことができます。通常はポート8080しか使用できませんが、私のアプリケーションではservlet.xmlを設定して他のポートを開くように設定することもできます(8081-8088)。私はServlet.init()の間にコネクターを起動していないソケット接続ポートが何であるかをサーブレットが把握したいと思います。Tomcatでは、サーブレットはどのようなコネクタが設定されているかをどのように判断できますか?

私はserver.xmlを見つけて自分自身(grotty)私はスレッド名を見ることができました(しかし、Tomcatが起動した後、それを行うのがよい時はどうすればわかりますか?)しかし、私はservlet.init()内で実行可能な解決策を選び、有効なポート範囲。何か案は?私のアプリケーションでTomcatに緊密に結び付けることができます。これは問題ありません。

org.apache.catalina.ServerFactory.getServer().getServices 

は、サービスを得るために:

答えて

4

は、Tomcat 6.0ではそれが何かのようにする必要があります。その後、あなたは最終的に方法

Connector.getPort 

詳細についてはJavaDocsを参照してくださいを持っているコネクタを返し

Service.findConnectors 

を使用する場合があります。

+0

Humm。サーブレットはorg.apache.catalina.ServerFactoryにアクセスできますか?私はそれがサーバーのクラスローダーにあり、サーブレットにアクセス可能です。 –

+0

FYI:私はTomcat上にいる5.5.17 –

0

なぜですか?

イメージまたはCSSファイルURLのページ生成時に必要な場合は、、またはより良い意味では、シバン全体については、HttpServletRequest.getContextPath()が間違っていますか?

+0

私のアプリケーションには、異なるサービスが別のポートに接続されている構成フェーズがあります。設定段階で、Tomcatが接続を受け付けているポートでリッスンするようにサービスが設定されていることを確認できます。 –

0

あなたがしようとしていることは何でも - 私は風通しのある特定の道路を降りてはいけません。

本当に別のポートを見つける必要がある場合は、通常の設定手段(例:値を指定します。あなたは自動的な発見はしませんが、次回の更新時にはtomcatを壊すことはありません。

具体的には、間違った質問をしたと思います。例えば。 1つのソリューションを選択し、このソリューションを実装する方法を尋ねました。私はあなたの最初の手の要件を述べ、これのための解決策を尋ねた場合、あなたはより良い答えを得るだろうと信じています。

関連する問題