[
https://issues.apache.org/jira/browse/WW-3764?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13249177#comment-13249177
]
Vijayakannan commented on WW-3764:
----------------------------------
Root cause for the above Exception:
FreemarkerTemplateEngine.java :- List<Template> templates =
templateContext.getTemplate().getPossibleTemplates(this);
The above method call BaseTemplateEngine.java loadProperties(String propName)
method to load the theme.properties for the template.
This method internally calls readProperty(String propName)method to load the
properties file from file system /class path but not from application path.
private Properties loadProperties(String propName) {
InputStream is = readProperty(propName);
Properties props = new Properties();
if (is != null) {
tryToLoadPropertiesFromStream(props, propName, is);
}
return props;
}
private InputStream readProperty(String propName) {
InputStream is = tryReadingPropertyFileFromFileSystem(propName);
if (is == null) {
is = readPropertyFromClasspath(propName);
}
return is;
}
Value of propName in my case ="WEB-INF/template/xhtml/theme.properties"
Please create unit test case for the
loadProperties("WEB-INF/template/xhtml/theme.properties") method to understand
the problem more details.
> Reading(theme.properties)PropertyFileFromFileSystem doesn't include
> templatePath value from web.xml
> ---------------------------------------------------------------------------------------------------
>
> Key: WW-3764
> URL: https://issues.apache.org/jira/browse/WW-3764
> Project: Struts 2
> Issue Type: Temp
> Affects Versions: 2.3.1
> Environment: Tomcat v7.0
> Reporter: Vijayakannan
> Labels: theme.properties-loading-from-filesystem
> Fix For: 2.5.x
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> There is an option in Struts2 to load the freemarker template from path by
> setting in web.xml (templatePath).Templates are loaded from the file system
> if we configure the file path.
> Also there is an option to extend the themes by setting the value for
> "parent" key in the themes.properties within the template folder
> readProperty() method helps us to read the themes.properties file from the
> file system and also from the classpath
> Aruguments :-
> Combination of template directory ,template and file name "theme.properties"
> are passed as propName
> This method doesn't help us to load the theme.properties from the specified
> templatePath
> private InputStream readProperty(String propName) {
> InputStream is = tryReadingPropertyFileFromFileSystem(propName);
> if (is == null) {
> is = readPropertyFromClasspath(propName);
> }
> return is;
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira