2009-08-06 8 views
1

をjarファイルをサーブ:MyApp.warを、その中に、私はjarファイルがあります:WEB-INF/lib/PublicJar.jar私は、Webアプリ持つ(リソースとして)warファイル内から

  • を私はクライアントアプリケーションになりたいですウェブリソースのようにそのjarをダウンロードすることができます。 例えばhttp://theserver.com/myapp/jars/PublicJar.jar

  • 私は、Webアプリケーションは、それが変更されている場合、それはそれをリロードする必要がある場合、クライアントが知っているので、参照 にjarファイルのハッシュコードを計算することができるようにしたいです。

これはできますか?

答えて

3

WEB-INF内のリソースは、クライアントに直接配信することはできません。これを行うには、サーブレット/コントローラを作成してServletContextリソースとして抽出し、HTTPレスポンスにフィードする必要があります。

PublicJar.jarもアプリケーション自体で使用されていますか?あなたはWEB-INFの外に移動することはできませんか、またはWAR内の2つのコピーをWEB-INF(内部アプリケーション用)に1つ、ダウンロード用に2つバンドルすることはできますか?

+0

PublicJar.jarは、アプリケーションによって使用されます(春のリソースローダーclasspath:public/resource.xmlを介して)。実際には、PublicJar.jarにはリソースのみが含まれています。 – Justin

+0

その場合、WEB-INFからjarを移動すると、SpringはServletContextResourceを使用してロードすることができます。一度WEB-INFから出ると、クライアントは直接WEB-INFにアクセスできます。 – skaffman

+0

ありがとう!スプリングリソースローダーは完全に助けました。私はサービスメソッドを追加したので、すでにクライアント用にHttpInvokerを使用していたのでサーブレットのアプローチに行きました:byte [] readPublicJar() - quick + dirty。 PublicJarが大きくなると、サーブレットから読み込むのではなく、サーブレットのコンテキストに移動する必要があります。 – Justin

関連する問題