私は、各WebアプリケーションのMETA-INF/context.xmlを更新してcrossContext = "true"を含むように、別々のWebアプリケーション間でリクエストを転送した経験があります。Tomcatクロスサービス要求転送?
しかし、今では、同じ実行中のTomcat内に、完全に別の領域にWebアプリケーションを配備している状況があります。 Tomcatのserver.xmlで、詳しく説明するには:
- APP1は、独自のコネクタと名「app1Svc」でサービスを使用していますので、そのため、独自のエンジン、レルム、およびホスト、(別のポートで実行されていることを可能にします)。
- App2が、私は同じホスト内でこれらのWebアプリケーションを実行する場合、私は彼らのコンテキスト介して2つの間の要求をディスパッチできるなど、独自のコネクタを備えた「app2Svc」という名前distinceサービスで、
を同様のセットアップを持っています.xmlのcrossContext = "true"を指定し、関連するサーブレットコンテキストを取得して、リクエストを(Tomcat not able to get ServletContext of another webapp)に転送します。
しかし、別のポートで実行する必要がある2つのWebアプリケーション間でこれを送信することは可能ですか(httpdやtomcatの前に何も置かずに)?
これは、1つのリクエストを処理するために2つのリスナースレッドが占有されていることを除いて、うまくいくと思いますが、これはあまり最適ではありません。これにより、リクエストにすでに設定されているリクエスト属性も失われます(これは私が信じる標準的な転送の場合ではありません)。 – drobert
はい、手動ですべてを転送する必要があります。 – Bozho
RMI経由で両方のサーブレットのサービスを公開できますか?これは、ローカルLAN上にある場合、完全なHTTP要求よりもサービス間通信のほうが効率的です。同じJVM上にいる場合は、JNDIなどの他の可能性があります。プログラムを起動すると、JVMの幅広いレジストリ・サービスが公開されます。 –