私はTomcatサーバーから実行するために.warに展開しようとしたSpring Bootアプリケーションを持っています。.warへの相対パスはどのように機能しますか?
これまでは、実行可能ファイル.jarにデプロイしていて、すべてが完全に機能していました。
アプリでは、.jsonファイルを読み込んでディレクトリを読み込む必要があります。その場所は相対的なものです。 .jarにデプロイするときは、.jarと同じフォルダにファイルがあります。私はそれにアクセスする:./branchMap.json
。ディレクトリはjarと同じフォルダにあり、私は./patches
としてアクセスします。
私が.warにデプロイするとき、アプリケーションをTomcatのwebappsに配置し、jsonファイルとそのフォルダをwebappsに配置します。アプリケーションを実行すると、jsonファイルを読み取ることができますが、/ patchesフォルダを読み取ることはできません。
どうしてですか?私は、Tomcatが/ patchesフォルダをアプリケーションとしてロードしようとしているのを見ましたが、Tomcatマネージャにリストされています。これは、そのフォルダへのアクセスを読み取ろうとするアプリケーションにどのように干渉しますか?戦争に配備されたアプリが相対的なパスにアクセスする方法が異なるのでしょうか?
これは解決策ではありません。別のマシンにjarファイルをデプロイできるようにしたいのですが。 – dannemp
その場合は、集中設定を行うことができます。異なるマシンの場合は、同じパスのパッチフォルダを集中設定サーバー。 –
はい、私はそれを行うことができましたが、私の質問は、なぜ戦争に展開するときに起こるのか、なぜ実行可能なjarが動作するのですか? – dannemp