在类路径中找不到Camel属性文件

时间:2017-01-17 07:44:31

标签: java properties apache-camel

我要加载资源:src/com/company/my.properties,但在类路径中找不到它。

错误

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
  • 骆驼核心:2.18
  • camel properties read read:Doc

my.properties文件包含'fromroute'键:

fromroute=file:/a/b

以下代码段显示了我是如何尝试加载文件的。

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

....
  from("properties:{{fromroute}}")
....    

2 个答案:

答案 0 :(得分:1)

应将

my.properties文件移至src/main/resources(不是src/com/company) 并更新setLocation()路径:

pc.setLocation("my.properties");

答案 1 :(得分:0)

要使类加载器找到资源,它需要位于 src / main / resources / 中,例如在您的情况下: src / main / resources / com / company / my.properties ,否则资源不会在JAR文件中结束,并且在运行时无法访问。

根据您用于加载资源的ClassLoader的类型,您需要包含或排除包名称。

例如:

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

Thread.currentThread().getContextClassLoader().getResourceAsStream("/com/company/my.properties");