我遇到了一些缓存问题,因为Wildfly 8.2在从部署的war文件提供静态文件时默认只包含Last-Modified响应头。我希望Wildfly包含ETag,响应头,这将解决我的缓存问题。有没有人知道是否可以在standalone.xml文件中进行配置?
答案 0 :(得分:0)
我已经实施了特殊的"资源" servlet使用ETag头提供战争资源。
Servlet扩展自Omnifaces库(http://showcase.omnifaces.org/servlets/FileServlet)中实现的FileServlet类。 FileServlet实现正确处理所有HTTP缓存头,您只需要实现资源加载方法getFile()来提供war资源文件。 以下是正确缓存来自" app"的所有资源的示例。目录:
@WebServlet(value = {"/app/*"})
public class ApplicationResourceServlet extends FileServlet {
@Override
protected File getFile(HttpServletRequest request) throws IllegalArgumentException {
final String pathInfo = request.getPathInfo();
if (pathInfo == null || pathInfo.isEmpty() || "/".equals(pathInfo)) {
return null;
}
final String realPath = getServletContext().getRealPath("/app" + pathInfo);
if (realPath != null && Paths.get(realPath).toFile().exists()) {
return new File(realPath);
}
return null;
}
}