Web应用程序将静态资源映射到Tomcat中的jar

时间:2014-08-08 16:33:58

标签: java html tomcat web-applications war

我正在将一个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

2 个答案:

答案 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

希望这能帮到你!