我正在使用带有 Spring IDE 插件 (3.8.1) 的 Eclipse Neon (4.6) 来开发 Spring Boot 应用程序。使用 Spring Boot 仪表板和 Spring Boot 配置来管理在 Eclipse 中运行的应用程序。通过 Spring Boot 仪表板运行应用程序时,一切正常。
我现在已经向应用程序添加了一个外部属性文件,并使用@PropertySource(value = {"classpath:fee.properties" }) 在我的@Configuration 类中引用它。我还通过 Spring Boot 配置在类路径上添加了一个“外部文件夹”位置。打开配置,转到类路径选项卡,按“高级”,然后按“添加外部文件夹”,添加属性文件的文件夹位置。
之前通过 Spring Boot Dashboard 启动应用程序时,它会在 org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter 上报告 ClassNotFoundException
如果我从配置中的类路径选项卡中删除外部文件夹,则应用程序启动正常,直到遇到错误,因为它找不到外部属性文件。
如果我将应用程序作为“Java 应用程序”运行,右键单击 Spring Boot 应用程序的“主”类,“运行方式...Java 应用程序”,外部文件夹启动正常。
因此,在任何 Spring 活动发生之前的主程序开始时,我添加了以下内容以查看类路径
ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)cl).getURLs();
for(URL url: urls){
System.out.println(url.getFile());
}
从 Spring Boot 仪表板运行时,类路径中缺少几个 jar,当作为 Java 应用程序运行或没有外部文件夹条目时,所有 jar 都存在于类路径中。
一些丢失的罐子的例子是......
/Users/orlok/.m2/repository/org/springframework/spring-context-support/4.2.3.RELEASE/spring-context-support-4.2.3.RELEASE.jar
/Users/orlok/.m2/repository/org/springframework/boot/spring-boot/1.3.3.RELEASE/spring-boot-1.3.3.RELEASE.jar
/Users/orlok/.m2/repository/org/springframework/boot/spring-boot-starter-web/1.3.3.RELEASE/spring-boot-starter-web-1.3.3.RELEASE.jar
/Users/orlok/.m2/repository/org/springframework/boot/spring-boot-starter/1.3.3.RELEASE/spring-boot-starter-1.3.3.RELEASE.jar
/Users/orlok/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.3.3.RELEASE/spring-boot-starter-logging-1.3.3.RELEASE.jar
我已附加“Spring_Boot_classpath.txt”作为因 ClassNotFoundException 而失败的输出,并将“Java_app_classpath.txt”作为作为 Java 应用程序运行的输出,并且所有 jar 都存在。
我在做什么错,应该以不同的方式定义外部文件夹,还是插件有问题?