2009-08-08 12 views
7

Das sollte ziemlich einfach sein, aber aus irgendeinem Grund scheint fast alles, was ich versuche, nur einen Fehler "nicht gefunden" auszugeben, wenn ich ihn an einen Webbrowser anschließe.Statische Inhalte aus einer JAR-Datei mit Jetty bereitstellen?

Ich habe einen einzigen statischen Kontext, und für die ResourceBase habe ich 'Datei: jar:/Pfad/zu/myjar! /.' ... irgendwelche Ideen, was ich vermisse?

Antwort

2

Versuchen Sie, die Ressource von Classloader wie folgt

ClassLoader classLoader = 
       Thread.currentThread().getContextClassLoader(); 

     if (classLoader == null) { 
      classLoader = getClass().getClassLoader(); 
     } 


     InputStream stream = classLoader.getResourceAsStream(name); 

Ihr Ansatz absoluten Pfad geht davon aus und sei es nicht wahr ist, zu laden, wenn der Server bereitgestellt wird. Das Jar könnte in einem anderen JAR (WAR) oder einem temporären Verzeichnis sein.

+0

Ich kann den Pfad später leicht ändern, ich sehe nur, ob ich das überhaupt zur Arbeit bekommen kann, und ich werde kein Servlet aus dem JAR laden - nur statische .html-Dateien. –

+1

Ich glaube nicht, dass Ihre Syntax richtig ist. Es sollte sein, jar: Datei: /path/to/my.jar!/Paket/Datei Wenn dies unter Windows ist, benötigen Sie möglicherweise auch den Laufwerkbuchstaben. –

Verwandte Themen