我有一个简单的应用程序,它使用Spring从类路径加载属性文件。将此应用程序部署到WebSphere Liberty 8.5.5时,会导致FileNotFoundException
。
java.io嵌套异常。FileNotFoundException:无法打开ServletContext资源[/myprops.properties]
这是我的Spring@Configuration类:
@Configuration
@Profile("dev")
@PropertySource("classpath:/myprops.properties")
public class AppConfigDev extends AppConfig {
...
}
我想知道我的属性文件应该位于Liberty目录结构的哪个位置?
在注释中使用前缀classpath:
表示给定的属性文件将通过ClassLoader. getResources(…)
调用从WebSphere的classpath
中获取。
参考:http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/resources.html#resources-classpath-wildcards
您需要为WebSphere Liberty创建所有属性文件的jar,以便能够加载它们。
参考:1.https://developer.ibm.com/answers/questions/13384/websphere-liberty-8-5-setting-java-classpath.html
2. WebSphere Liberty 8.5:设置Java类路径
您可以在名为jvm. option
的文件中设置文件的名称/目录,并将其放在您的${server.config.dir}/jvm.option
中
具体示例:
在文件中:${server. config.dir}/jvm.option
添加以下行:-DAPP_ENV=PROD
访问值:System.getProperty("APP_ENV");-