2009-08-08 7 views
7

Cela devrait être assez facile, mais pour une raison quelconque, presque tout ce que j'essaie semble juste distribuer une erreur «introuvable» lorsque je le connecte à un navigateur Web.Servir le contenu statique d'un jarfile avec Jetty?

J'ai un seul contexte statique, et pour la ResourceBase j'ai 'file: jar:/chemin/vers/myjar! /.' ... des idées qui me manquent?

Répondre

2

Essayez de charger la ressource de classloader comme celui-ci,

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

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


     InputStream stream = classLoader.getResourceAsStream(name); 

Votre approche suppose un chemin absolu et il ne peut pas être vrai lorsque le serveur est déployé. Le pot peut être dans un autre fichier JAR (WAR) ou dans un répertoire temporaire.

+0

Je peux facilement changer le chemin plus tard, je suis juste en train de voir si je peux le faire fonctionner, et je ne charge pas une servlet à partir du JAR - juste des fichiers .html statiques. –

+1

Je ne pense pas que votre syntaxe soit correcte. Il devrait être, jar: file: /path/to/my.jar!/Paquet/fichier Si c'est sur Windows, vous pourriez aussi avoir besoin de la lettre de lecteur. –

Questions connexes