2014-02-10 93 views
2

我嵌入Jetty 9在我的Java應用程序是這樣的:服務部分內容嵌入碼頭

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瀏覽器時,除了排隊頓悟或SWT的WebView。這些瀏覽器需要響應代碼206(部分)而不是200(ok)和一些標題值,如Content-Length,Accept-Ranges,Content-Range等。 是否有任何處理程序這樣做?

回答

2

我遇到了同樣的問題。 我用這個的HttpServlet: https://code.google.com/p/uranged/source/browse/trunk/src/main/java/com/vg/http/MicroRangeServlet.java?r=2

我已經添加了處理這種方式,所以,這將是隻用於\媒體\網址:

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,"/*"); 

在我的代碼我」我還在構造函數中添加了媒體文件的路徑,因爲它們不在公共文件夾中。

讓我知道你是否找到更優雅的解決方案。