使用Servlet 3.0 Tomcat在JAR中获取文件

时间:2013-08-03 02:49:39

标签: tomcat servlet-3.0

Servlet 3.0有一个很棒的功能:我可以使用META-INF / resources文件夹访问JAR中的静态资源。所以,如果我在JAR中有一个javascript,我可以使用 http://myurl.com/myapp/myjavascript.js。那很棒。 但是......如何从jar中获取该文件来操纵它或用它做一些事情?

1 个答案:

答案 0 :(得分:1)

只需使用ServletContext#getResourceAsStream()通常的方法来获取InputStream

InputStream input = getServletContext().getResourceAsStream("/META-INF/javascript.js");

至于你操纵它的意图,忘了它。这个资源不可写。基本上,您需要提取整个JAR,操作条目,重新打包JAR并提供自定义类加载器以重新加载它并告诉容器使用它。即使您成功完成此操作,一旦重新部署WAR或在某些配置中即使您只是重新启动服务器,所有更改都会丢失,原因很简单,原因是WAR中没有包含这些更改。

你在解决具体的功能需求方面走错了路。我建议退后一步,问一个关于如何解决特定具体功能要求的新问题,你错误地认为这个是正确的解决方案。