我正在尝试创建一个将在EAR中部署的战争,它应该只包含图像。
我的战争来源组织如下:
+---src
| +---main
| | +---java
| | +---resources
| | | \---META-INF
| | | \---resources
| | | \---images
| | | placeholder_image.jpg
| | | placeholder_template.png
| | |
| | \---webapp
| | \---WEB-INF
| \---test
| +---java
| \---resources
我的战争有效组织是
+---META-INF
\---WEB-INF
\---classes
\---META-INF
\---resources
\---images
placeholder_image.jpg
placeholder_template.png
我要投放的图片位于src/main/resources/META-INF/resources/images
文件夹中。
我使用maven-war-plugin打包这场战争。
如果我的战争在http://localhost:8080/myapp/
路径下显示为可用,那么在我的本地计算机上可以使用哪些网址?
答案 0 :(得分:2)
无。来自WEB-INF的内容不是静态服务的,resources
用于类路径资源。您需要将图像(文件夹)直接放在webapp
下或添加一个提供内容的servlet。
答案 1 :(得分:2)
这取决于您是否在与Tomcat 7或Jetty 8等兼容Servlet-3的容器中部署war
。
如果是这样,您的资源应该在http://localhost:8080/myapp/images/...
下显示。
另请参阅this post,其中唯一的区别是资源打包在jar
中。对于jar
,此功能比WEB-INF/classes
更有意义,因为,正如第一个答案所指出的那样,如果资源位于同一位置,您应该直接将资源直接放入src/main/webapp
Maven模块。