2012-01-25 6 views
2

私はJava Webアプリケーションを持っています。ここで私はjarファイルの中にあるいくつかのjavascriptファイルを持っています。 jarファイルからjavascriptファイルを配信するサーブレットが必要です。この機能は、DWRライブラリのようなものです。彼らは、ファイルシステムに含まれていないいくつかのjavascriptファイルを持っています。むしろそれらはジャンパーからjavascriptを配信します。 DWRServletクラスです。しかし、パスはhtmlヘッダーに含まれています。このような機能を実装したいと思います。あなたは私にその考え方を教えてください。jarからjavascriptを配信

答えて

2

JARのリソースはクラスパスの一部です。 ClassLoader#getResourceAsStream()によって、クラスパスリソースのInputStreamを取得できます。だから、あなたのサーブレットはまさにそのようにしてください。

あなたがJARの/META-INF/resourcesでこれらのJSリソースを持っていると仮定すると:

@WebServlet("/resources/*") 
public class ResourceServlet extends HttpServlet { 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String path = request.getPathInfo(); 
     ClassLoader loader = Thread.currentThread().getContextClassLoader(); 
     InputStream input = loader.getResourceAsStream("/META-INF/resources" + path); 

     if (input != null) { 
      response.setContentType(getServletContext().getMimeType(path)); 
      OutputStream output = response.getOutputStream(); 
      // Now just write input to output the usual way. 
     } else { 
      response.sendError(404); 
     } 
    } 

} 

次にあなたがhttp://localhost:8080/contextname/resources/some.jsでJARの/META-INF/resources/some.jsを得ることができます。

+0

大変ありがとうございますBalusC –

+0

よろしくお願いいたします。 – BalusC

関連する問題