Я пытаюсь загрузить файл свойств на Java, запущенной на JBossFuse / karaf.
Файл находится по адресу $ [karaf.home] /etc/bean.properties.
Код может нормально загружать свойства внутри пакета, но теперь я пытаюсь исключить свойства из самого проекта, и код выдает исключение Nullpointer-Exception.
Путь правильно разрешен на моей машине разработки как
C: \ Users \ кто-то \ devstudio \ runtimes \ jboss-fuse-6.3.0.redhat-135 \ etc \ bean.properties
Свойство File можно загрузить в blueprint-XML для настройки bean-компонентов, но для доступа к bean-компоненту моему коду нужен CamelContext. Поскольку у меня есть некоторые статические кодовые блоки, доступ к которым осуществляется без обмена / контекста / реестра, я также хотел иметь возможность загружать свойства в Java.
Обе функции генерируют исключение NullPointerException, и я думаю, это потому, что код работает во Fuse.
public static Properties getProperties(String location) {
Properties prop = new Properties();
InputStream input = null;
try {
input = PropertyLoader.class.getClassLoader().getResourceAsStream(location);
prop.load(input);
} catch (IOException ex) {
log.error("Error loading properties file from: " + location, ex);
return null;
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
log.error(e);
}
}
}
return prop;
}
public static Properties getPropertiesFromFilesystem(String location) {
Properties prop = new Properties();
InputStream input = null;
try {
input = new FileInputStream(location);
prop.load(input);
} catch (IOException ex) {
log.error("Error loading properties file from: " + location, ex);
return null;
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
log.error(e);
}
}
}
return prop;
}
Исключение:
java.lang.NullPointerException в java.util.Properties $ LineReader.readLine (Properties.java:434) [: 1.8.0_91] в java.util.Properties.load0 (Properties.java:353) [: 1.8.0_91] в java.util.Properties.load (Properties.java:341) [: 1.8.0_91] в com.mycompany.util.PropertyLoader.getProperties (PropertyLoader.java:19) [319: план-архетипа верблюда: 0.0.14] в com.mycompany.camel.blueprint.MyProcessor.process (MyProcessor.java:21) [319: camel-archetype-blueprint: 0.0.14] в org.apache.camel.processor.DelegateSyncProcessor.process (DelegateSyncProcessor.java:63 ) [231: org.apache.camel.camel-core: 2.17.0.redhat-630135] в org.apache.camel.management.InstrumentationProcessor.process (InstrumentationProcessor.java:77) [231: org.apache.camel. camel-core: 2.17.0.redhat-630135] в org.apache.camel.processor.RedeliveryErrorHandler.process (RedeliveryErrorHandler.java:468) [231: org.apache.camel.camel-core: 2.17.0.redhat- 630135] на org.apa che.camel.processor.CamelInternalProcessor.process (CamelInternalProcessor.java:196) [231: org.apache.camel.camel-core: 2.17.0.redhat-630135] в org.apache.camel.processor.Pipeline.process ( Pipeline.java:121)[231:org.apache.camel.camel-core:2.17.0.redhat-630135] в org.apache.camel.processor.Pipeline.process (Pipeline.java:83) [231: org .apache.camel.camel-core: 2.17.0.redhat-630135] в org.apache.camel.processor.CamelInternalProcessor.process (CamelInternalProcessor.java:196) [231: org.apache.camel.camel-core: 2.17 .0.redhat-630135] в org.apache.camel.component.timer.TimerConsumer.sendTimerExchange (TimerConsumer.java:192) [231: org.apache.camel.camel-core: 2.17.0.redhat-630135] в org.apache.camel.component.timer.TimerConsumer $ 1.run (TimerConsumer.java:76) [231: org.apache.camel.camel-core: 2.17.0.redhat-630135] в java.util.TimerThread.mainLoop (Timer.java:555)[:1.8.0_91] в java.util.TimerThread.run (Timer.java:505) [: 1.8.0_91]
Любая помощь будет высоко ценится.