2009-08-08 12 views
7

これはかなり簡単なはずですが、何らかの理由で私が試したすべてのものは、ウェブブラウザに接続すると「見つからない」というエラーを出すようです。Jettyでjarfileから静的コンテンツを提供していますか?

私は単一の静的コンテキストを持っていますが、ResourceBaseのために私は 'file:jar:/ path/to/myjar!/。' ...というアイデアがありますか?

答えて

2

ClassLoader classLoader = 
       Thread.currentThread().getContextClassLoader(); 

     if (classLoader == null) { 
      classLoader = getClass().getClassLoader(); 
     } 


     InputStream stream = classLoader.getResourceAsStream(name); 

あなたのアプローチは、絶対パスを前提とし、このようなクラスローダからリソースをロードしようとサーバーが展開されるとき、それは本当ではないかもしれません。 jarは別のJAR(WAR)または一時ディレクトリに存在する可能性があります。

+0

私はすぐにパスを変更することができます。私はこれを動作させることができるかどうかを確認しています。静的な.htmlファイルだけをJARからサーブレットをロードしません。 –

+1

あなたの構文が正しいとは思わない。 jar:file:/path/to/my.jar!/ package/file Windowsの場合は、ドライブ文字も必要な場合があります。 –

関連する問題