我在我的java应用程序中嵌入了Jetty 9,如下所示:
Server server = new Server(8080);
ResourceHandler handler = new ResourceHandler();
handler.setDirectoriesListed(false);
handler.setWelcomeFiles(new String[]{"index.html"});
handler.setResourceBase(System.getProperty("user.home"));
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { handler, new DefaultHandler() });
server.setHandler(handlers);
server.setHandler(handlers);
server.start();
除非将.ogg音频文件提供给基于webkit的浏览器行Epiphany或SWT WebView,否则此工作正常。那些浏览器需要响应代码206(部分)而不是200(ok)和一些标题值,如Content-Length,Accept-Ranges,Content-Range等。 是否有任何处理程序这样做?
答案 0 :(得分:3)
我遇到了同样的问题。 我用过这个HttpServlet: https://code.google.com/p/uranged/source/browse/trunk/src/main/java/com/vg/http/MicroRangeServlet.java?r=2
我已经以这种方式添加了处理,因此它只会用于\ media \ url:
ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
contextHandler.setContextPath("/media");
org.eclipse.jetty.servlet.ServletHolder holderHome = new org.eclipse.jetty.servlet.ServletHolder(new MicroRangeServlet(config, path+"/media"));
contextHandler.addServlet(holderHome,"/*");
在我的代码中,我还在构造函数中添加了媒体文件的路径,因为它们不在公共文件夹中。
如果您找到更优雅的解决方案,请告诉我。