2013-06-06 18 views
6

Desidero che Grizzly supporti file statici all'interno di un .jar, che contiene un'applicazione JAX-RS, Grizzly e tutte le altre librerie. Sto usando org.glassfish.grizzly.http.server.StaticHttpHandler per servire i file statici.Elaborazione di contenuto statico con StaticHttpHandler di grizzly dall'interno di un .jar

public class Main { 

    // ... 

    public static void main(String[] args) throws IOException, URISyntaxException { 
    final HttpServer server = startServer(); 
    server.getServerConfiguration().addHttpHandler(
      new StaticHttpHandler(getTemplatePath()), "/static"); 
    System.in.read(); 
    server.stop(); 
    } 

    private static String getTemplatePath() throws URISyntaxException { 
    return Main.class.getClassLoader().getResource("templates/static").getPath(); 
    } 
} 

Ma funziona solo, se avvio l'applicazione con il mio IDE. Se impacchetta un file .jar e lo eseguo, i file statici non vengono trovati.

E 'possibile servire file statici all'interno di un file .jar con grizzly StaticHttpHandler? E come?

risposta

7

È necessario utilizzare CLStaticHttpHandler anziché StaticHttpHandler.

Si prega di dare un'occhiata a questa domanda html server grizzly+jersey (.html from .jar archive)

+0

Grazie, ma dove posso trovare CLStaticHttpHandler? Non è nel pacchetto Grizzly e anche Google trova solo 3 pagine a riguardo. – deamon

+0

Viene fornito con Grizzly versione 2.3.3. Maggiori dettagli possono essere trovati qui: https://mytecc.wordpress.com/2013/06/06/grizzly-2-3-3-serving-static-http-resources-from-jar-files/ – alexey

+0

Ok, I ' non aggiornato, perché Grizzly è una dipendenza transitiva da JAX-RS per me. – deamon

Problemi correlati