J'essaye de charger la ressource: src/com/company/my.properties, mais elle ne peut pas être trouvée sur le chemin de classe.

Erreur

Failed to create route route1: Route(route1)[[From[properties:{{fromroute}}]] ->
[Choice[[When[... because of Failed to resolve endpoint: properties://%7B%7Bfromroute%7D%7D due to:
Properties file com/company/my.properties not found in classpath
  • noyau de chameau: 2.18
  • camel properties read refer: Doc

Le fichier my.properties contient une clé 'fromroute':

fromroute=file:/a/b

L'extrait suivant montre comment j'essaie de charger le fichier.

PropertiesComponent pc = new PropertiesComponent();
pc.setLocation("classpath:com/company/my.properties");
context.addComponent("properties", pc);

....
  from("properties:{{fromroute}}")
....    
0
user881703 17 janv. 2017 à 10:44

2 réponses

Meilleure réponse

Le fichier my.properties doit être déplacé vers src/main/resources (pas src/com/company) et mettez à jour le chemin setLocation():

pc.setLocation("my.properties");
1
Gerold Broser 14 août 2018 à 10:55

Pour que le chargeur de classe trouve une ressource, elle doit être située dans src / main / resources / , par exemple dans votre cas: src / main / resources / com / company / my.properties , sinon la ressource ne se retrouvera pas dans le fichier JAR et ne sera pas accessible à l'exécution.

Selon le type de ClassLoader que vous utilisez pour charger la ressource, vous devez inclure ou exclure le nom du package.

Par exemple:

getClass().getClassLoader().getResourceAsStream("my.properties");

Thread.currentThread().getContextClassLoader().getResourceAsStream("/com/company/my.properties");
0
Luciano van der Veekens 17 janv. 2017 à 10:24