SpringMVC生成清单xml清单提取失败(406)

时间:2015-09-04 12:47:42

标签: html5 spring-mvc manifest offline-browsing

我在服务器端生成了一个html5缓存清单xml,我得到了 应用程序缓存错误事件:清单提取失败(406)此错误消息在我的控制台中。

我的html中有这个标签:

<html manifest="http://localhost:8080/test/api/view/view/system/manifest">

我的控制器方法:

@RequestMapping(value = "manifest", produces = "text/cache-manifest", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public String manifest() {
    logger.debug("Generating the manifest file!");

    StringBuilder strManiFstBuilder = new StringBuilder();
    strManiFstBuilder.append("CACHE MANIFEST"); 
    strManiFstBuilder.append("\n");
    strManiFstBuilder.append("#revision 1");
    strManiFstBuilder.append("\n");
    strManiFstBuilder.append("CACHE:");
    strManiFstBuilder.append("\n");
    strManiFstBuilder.append("api/view/view/order");
    strManiFstBuilder.append("\n");
    strManiFstBuilder.append("NETWORK:");
    strManiFstBuilder.append("\n");
    strManiFstBuilder.append("api/view/view/system/ping");
    strManiFstBuilder.append("\n");
    strManiFstBuilder.append("*");
    strManiFstBuilder.append("\n");

    return strManiFstBuilder.toString();
}

我在我的web.xml中有这个

<mime-mapping>
    <extension>manifest</extension> 
    <mime-type>text/cache-manifest</mime-type>
</mime-mapping>

如果我从浏览器调用控制器方法,则会生成:

CACHE MANIFEST

CACHE: API /查看/ bestellijstsearchlistview /顺序/搜索/模板/标签,名称,%20customer.naam,orderParts.orderItems.product.description,orderParts.orderItems.product.externalId /页/ 1 /尺寸/ 500 网络: API /视图/视图/系统/平 *

我必须生成此文件,我该怎么做?我的解决方案可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

我设法通过从注释中删除了produce属性来修复此问题,并将.manifest添加到urlname。

我的控制器的标题:

@RequestMapping(value = "cache.manifest", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public String manifest() {


<html manifest="http://localhost:8080/system/cache.manifest">