Моя программа SpringBoot 2.0.3 java 8 отлично работает на Eclipse Photon (с использованием Maven), однако, когда я встраиваю ее в jar-файл и устанавливаю в AWS Linux и запускаю там, я получаю:
2019-06-10 10:07:14.395 WARN 18316 --- [ main]s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ccWrapperApplication': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'tmp.dir' in value "${tmp.dir}"
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ccWrapperApplication': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'tmp.dir' in value "${tmp.dir}"
похоже, что spring не может найти переменные application.properties при работе в Linux. Почему нет?
tmp.dir определяется в src / main / resources / application.properties как:
tmp.dir=tmp
и ccWrapperApplication.java имеет:
@SpringBootApplication
// SpringBoot likes to use a database, we don't need one, so we exclude the default dB.
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class CcWrapperApplication implements CommandLineRunner {
@Value("${tmp.dir}")
public String tmpDir;
public static void main(String[] args) {
logger.info("running CcWrapperApplication on " + System.getProperty("os.name"))
SpringApplication.run(CcWrapperApplication.class, args);
}
@Override
public void run(String... args) {
...
}
public String getTmpDir() {
return tmpDir;
}
public void setTmpDir(String tmpDir) {
this.tmpDir = tmpDir;
}
}
Я собрал jar приложения, используя eclipse:
экспорт-> запускаемый файл JAR
Установил jar в Linux, добавил jar в CLASSPATH (и все jar SpringBoot) и запустил из сценария оболочки, используя:
java com.clarivate.singulatiry.chemworkbench.chemcurator.chemcurator_wrapper.CcWrapperApplication $inputDir $outputDir 2>&1 >>$logfile | tee -a $logfile >>$errorfile
Любая помощь приветствуется.