
[英]How to upload images in src/main/webapp/resources with spring MVC
[英]Access images in src/main/webapp/images in Vaadin project
在我的Vaadin项目中,我希望能够直接将图像作为静态资源进行访问。 当我将图像放在src / main / webapp / VAADIN / themes / ...下面时,它可以工作。 如果图像位于src / main / webapp / images中,我该怎么做? 到目前为止,我已经看到可以将这个servlet映射放入我的web.xml中:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>
不幸的是,它不起作用,我收到此错误:
Caused by: com.ibm.ws.exception.RuntimeWarning: SRVE0303E: Servlet name for the servlet mapping /images/* could not be found.
我的应用程序在WebSphere上运行,因此我也尝试使用SimpleFileServlet作为servlet-name:
<servlet-mapping>
<servlet-name>SimpleFileServlet</servlet-name>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>
仍然会导致与上述相同的错误。
任何帮助表示赞赏!
其他servlet映射:
<servlet-mapping>
<servlet-name>QuarzServlet</servlet-name>
<url-pattern>/QuarzServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RunJUnitServlet</servlet-name>
<url-pattern>/RunJUnitServlet</url-pattern>
</servlet-mapping>
尝试通过URL打开Web浏览器中的图像(位于src / main / webapp / images /中)时,它仅加载Vaadin应用程序。 当我打开使用图像的页面时,Firebug告诉我找不到图像。
从您的更新来看,似乎Vaadin servlet被映射到/ *(或使用向静态文件发出请求的url-pattern映射到Vaadin servlet)。 由于Vaadin Servlet的映射与请求URI匹配,因此Websphere将为Vaadin Servlet提供服务,而后者可能会尝试提供静态文件。 该请求将永远不会通过Websphere文件服务机制。 您可以验证您的Vaadin servlet,以查看是否具有如下所示的注释:
@WebServlet(value = "/*")
如果是这种情况,并且您仍然希望Websphere提供静态文件,则将需要修改此映射以使其更加具体,并使对静态文件的请求通过Websphere文件提供机制进行。 您可以在此处找到有关如何设置Vaadin Servlet的其他信息:
https://vaadin.com/wiki/-/wiki/Main/Creating+a+servlet+3.0+application
此外,此stackoverflow问题还提供了一些可能的解决方案:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.