首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grizzly锁定静态服务资源

Grizzly锁定静态服务资源
EN

Stack Overflow用户
提问于 2012-11-09 19:44:20
回答 3查看 849关注 0票数 1

如果带有StaticHttpHandler的Grizzly正在运行,并且向静态文件(例如index.html)发出请求,那么该文件就会被锁定。也就是说,在Grizzly运行时无法编辑和保存index.html。

是否有任何解决方案或解决方案能够保存当前提供的静态资源?

EN

回答 3

Stack Overflow用户

发布于 2012-11-14 07:18:42

一种可能的解决方法是禁用FileCache。

代码语言:javascript
复制
HttpServer server = HttpServer.createSimpleServer();
server.getNetworkListener("grizzly").getFileCache().setEnabled(false);

如果这还不起作用,我建议您记录一个issue,这样我们就可以尝试解决这个问题。

票数 3
EN

Stack Overflow用户

发布于 2014-08-07 21:27:07

我在Grizzly 2.3.16中找不到server.getNetworkListnener方法,所以当我找到它时:

代码语言:javascript
复制
    HttpServer server = GrizzlyHttpServerFactory.createHttpServer(URI.create(baseUri), rc);
    StaticHttpHandler staticHttpHandler = new StaticHttpHandler("docRoot");
    staticHttpHandler.setFileCacheEnabled(false);
    server.getServerConfiguration().addHttpHandler(staticHttpHandler);
票数 2
EN

Stack Overflow用户

发布于 2015-04-19 09:18:33

我为此挣扎了一段时间。上面的帖子可以工作,但只有在服务器启动后才能完成。

如果在运行前将文件缓存设置为false,则服务器会在您启动它时重新打开文件缓存。确保在调用server.start()之后将其关闭,如下所示。

当您调用以下命令时,似乎Jersey 2.3.17 / Grizzly HttpServer打开了缓存

代码语言:javascript
复制
server.start();

尽管在启动它之前将其设置为false。

代码语言:javascript
复制
server.start(); // turns file cache back on
handler.setFileCacheEnabled(false); // turn it off again
// get every NetworkListener and set it to false (as these will also lock files)
for (NetworkListener l : server.getListeners()) {l.getFileCache().setEnabled(false);  }        
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13307489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档