2016-08-23 13 views
0

Tomcatアプリケーションで作業中です。移行ガイドを使用して、Tomcat 7からTomcat 8に更新しました。 これを実行した後、私は、サーバー上に配備されたアプリケーションのコンテキストパスが今や異なっていることを認識しました。Tomcat 8で停止したアプリケーションのコンテキストパスの変更

jspでコンテキストパスを要求しています。使用したルートディレクトリに展開:

application.getContext("app").getContextPath() 

結果は、アプリケーションのコンテキストパスである:アプリケーションが実行中か停止している場合/アプリ

コンテキストパスは、常に同じです。

Tomcat 8.0.33にアップグレードした後の動作は異なります。 アプリケーションが停止すると、私が取得するコンテキストパスは空のパスになります(これはROOTを指します)。 runnnigアプリケーションの コンテキストパスは同じです:/アプリ

私は、移行ガイドや変更ログを学んだが、私は別の動作を説明する任意の変更を見つけることができませんでした。 私はまた、多くのグーグルとこの行動を説明するものを手がかりがありません。

問題の原因を見つけ出すことができますか?

答えて

0

私がやっていることを十分にはっきりさせられなかったと思います。私はアプリケーションの現在のコンテキストパスを望んでいません。

Tomcatでは、さまざまな数のアプリケーションが展開されています(名前は/ app1、/ app2、...、/ app10)。 ROOTにデプロイされたjspの中で、どのアプリケーションが実際にサーバーにデプロイされているかを調べる必要があります。私は他のアプリケーションのサーブレットコンテキストを求めることによって、これをやっている:私は、それは(アプリケーションがデプロイされていない)空であるか、アプリケーションのコンテキストパスを求めた場合

application.getContext("/app1); 
application.getContext("/app2); 
... 

または私は実際のパスを取得します(たとえば、/app1):

application.getContext("/appX").getContextPath() 

私はどのようにデプロイされたアプリケーションのリストを作成しますか。 しかし、Tomcat 8では、デプロイされていないアプリケーションだけでなく、デプロイされているが停止しているアプリケーションに対しても、コンテキストパスが空になります。これはTomcat 7とは異なる動作です。

私は今私の問題点を明確にすることができれば幸いです。

0

残念ながら、私は問題が何かを見つけることができませんでした。代わりに、Tomcatマネージャのエンドポイントを使用するようにコードを書き直しました。

関連する問題