Webアプリケーションのクラスパスにあるリソースファイルがいくつかあります(重要な場合は、JAR内にあります)。たとえば、を呼び出すことで、これらのリソースのコンテンツにアクセスできることを知っていますSomeClassLoader.getResourceAsStream( "/samples/myscript.txt" )
。私は過去にこれを爆発したWARファイルと爆発していないWARファイルの両方でテストして成功しました。
ただし、アプリ内の他の既存のクラスと統合するには、そのファイルにURLConnectionオブジェクトを提供する必要があります。分解getResource("/samples/myscript.txt").openConnection()
されたWARで呼び出しが機能することをテストして確認しました(さらに、デバッグにより、結果が分解されたファイルへのURLであることが明らかになりました)。file:///
質問:そのメソッドは、展開されていない(「パッケージ化された」)WARでも機能しますか?
(現在、戦争を爆発させずに展開するサーバーに簡単にアクセスできないため、完全に試してみるのではなく、質問しているのです。また、一部のサーバー(Jetty、TomcatなどunpackWARs="false"
)では、爆発しない展開が許可されています。しかし、舞台裏では、彼らは戦争を解き放ち、爆発的な展開のように効果的に動作し、明らかに正しく機能しています。過去に問題を引き起こしたサーバーはWebsphereとWeblogicだったと思います)。