Wicket相当新,请原谅我的无知。
我有一个Wicket应用程序...以WicketApplication.class
开头我有一个WicketApplication.properties
文件来加载一些值。属性文件位于类文件旁边(相同的包)。工作正常,没有问题。
现在,我想将属性文件移到应用程序WAR / JAR之外。将应用程序导出为WAR以在Tomcat上运行。我在tomcat root&下创建了一个名为properties
的文件夹。将WicketApplication.properties移动到此目录。在WicketApplication.class中添加了以下init()方法......
String realPath = getServletContext().getRealPath("/");
realPath = realPath.replaceAll("\\\\", "/");
if (realPath.toUpperCase().indexOf("WEBAPPS") != -1) {
String newRes = realPath.substring(0, realPath.toUpperCase().indexOf("WEBAPPS") -1);
System.out.println (newRes + "/properties");
getResourceSettings().getResourceFinders().add(new Path( newRes + "/properties"));
}
我抛出异常。
如何“外部化”属性文件?
另外,如果我可以更进一步,如何将属性文件名映射到类名... .., myapplication.properties -> WicketApplication.class
提前致谢。
答案 0 :(得分:1)
您需要使用application.getResourceSettings().getStringResourceLoaders().add(...)
添加新的IStringResourceLoader。
有关默认值,请参阅https://github.com/apache/wicket/blob/515e2be2a5301f5caf7b1baee4a593d21c20e275/wicket-core/src/main/java/org/apache/wicket/settings/ResourceSettings.java#L220-L224。
IResourceFinder
。
无法将myapplication.properties
映射到WicketApplication.class
。通过添加一个额外的IStringResourceLoader,您只需告诉Wicket在另一个地方进行搜索。