2016-02-05 80 views
0

对Wicket比较陌生,所以请原谅我的无知。Apache Wicket 7 - 应用程序属性

我有一个Wicket应用程序...开始于WicketApplication.class我有一个WicketApplication.properties文件来加载一些值。属性文件位于类文件(相同的包)旁边。工作正常,没有问题。现在

,我想移动的属性文件的应用程序WAR/JAR之外。将应用导出为WAR以在Tomcat上运行。我在tomcat根目录&下创建了一个名为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")); 
     } 

我得到一个抛出的异常。

如何“外在化”的属性文件?

而且,如果我能走一步,我怎么事先映射属性类name..it文件名,myapplication.properties -> WicketApplication.class

感谢。

回答

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默认的。当你想添加自定义位置的HTML文件

IResourceFinder应该被使用。

没有办法映射到myapplication.propertiesWicketApplication.class。通过添加额外的IStringResourceLoader,您只需告诉Wicket在另一个地方搜索。

+0

嗨_martin-g_感谢您的回应和澄清。我一直在尝试'IResourceFinder'来定义prop文件的位置。按照建议尝试'IStringResourceLoader'。 – user2809072