我正在将一个Web应用程序移植到tomcat,我遇到了静态资源问题。
我有一个包含网络资源的jar(css,img,js,...文件)。这些文件打包在类似于以下的路径中:
data.jar
com/bizname/application/web/css
com/bizname/application/web/img
com/bizname/application/web/js
jar在Web应用程序中。我希望能够将资源映射到公共访问。例如,如果我访问:
http://myserver:8080/mywebapp/css/style.css
我想要传递资源com/bizname/application/web/css/style.css
。
我无法找到如何在Tomcat的web.xml
文件中设置它。
在Jetty嵌入式中,我能够使用句柄来实现这一目标。
final URL url_css = Servidor.class.getClassLoader().getResource("com/bizname/application/web/css");
HandlerList handlers = new HandlerList();
handlers.addHandler(new WebAppContext(url_css.toExternalForm(),"/css"));
// ... adding handler to context
答案 0 :(得分:2)
也许jawr可以帮到你。
如果没有,您可以实现一个为您执行此操作的Servlet(读取文件并将其写入响应)。如果你使用像Resteasy这样的东西会更容易,因为你不需要编写IO东西。
答案 1 :(得分:-1)
我不太确定这是对的,考虑到我只使用过Eclipse中的Tomcat,但无论如何我都会试一试。
我假设你在这个应用程序中使用Java Servlets?如果是这种情况,那么您需要在web.xml中指定URL模式。以下是来自apache.org的web.xml文件的一个很好的例子,它解释了文件的各个方面:
https://tomcat.apache.org/tomcat-5.5-doc/appdev/web.xml.txt
希望这能帮到你!