2011-08-22 1 views
4

Mon chargeur de classe résout les ressources en une source qui n'a pas de gestionnaire d'URL, par exemple, il obtient des ressources d'une base de données. Cela pose bien sûr un problème pour ClassLoader.getResource (String) qui renvoie une URL. Pour que l'URL.openConnection() etc fonctionne, j'ai besoin d'un gestionnaire de protocole, ce qui pose un problème supplémentaire. Comment cna i mappez l'URL à mon fournisseur de données sans installer un gestionnaire de protocole Url personnalisé qui nécessite que vous définissiez une propriété système au démarrage. Le problème avec les gestionnaires de protocole url est qu'ils sont statiques et doivent être définis au démarrage alors que mes chargeurs de classe sont dynamiques et peuvent provenir de nombreux endroits.Implémentation de ClassLoader.getResource (String) sans gestionnaire de protocole

Est-il possible de résoudre ceci élégamment sans gestionnaire de protocole?

Répondre

2

Eh bien, si vous implémentez ClassLoader.getResource(String) vous-même, ne pouvez-vous pas utiliser le constructor for URL qui prend en compte le gestionnaire de protocole comme l'un de ses arguments?

public URL(String protocol, 
      String host, 
      int port, 
      String file, 
      URLStreamHandler handler) 
    throws MalformedURLException 
+0

Merci je n'ai pas repéré que - évident et semble être parfait :) –

Questions connexes