Freemarkerのコードでレイアウトテンプレートを展開する場合、例えば以下のようになります。
<span>${languageUtil.get(locale, "read-more")}</span>
<span>${sessionClicks.get(request, "test", "My Test")} }</span>
サーバーログにスタックトレースが表示されます。
INFO [fileinstall-/liferay-dxp-7.1/osgi/war][BaseAutoDeployListener:50] Layout templates for /liferay-dxp-7.1/tomcat-9.0.6/temp/20191112101935419XQVHYTZK/my-layout-template-project.war copied successfully
ERROR [Refresh Thread: Equinox Container: 8b19cc3b-1ff6-40e3-aebc-7c036213f440][runtime:60] Error executing FreeMarker template
FreeMarker template error:
Multiple compatible overloaded variations were found with the same priority.
The FTL type of the argument values were: Null, string (wrapper: f.t.SimpleScalar).
The Java type of the argument values were: Null, String.
The matching overload was searched among these members:
com.liferay.portal.language.LanguageImpl.get(ResourceBundle, String),
com.liferay.portal.language.LanguageImpl.get(javax.servlet.http.HttpServletRequest, String, String),
com.liferay.portal.language.LanguageImpl.get(ResourceBundle, String, String),
com.liferay.portal.language.LanguageImpl.get(javax.servlet.http.HttpServletRequest, ResourceBundle, String),
com.liferay.portal.language.LanguageImpl.get(javax.servlet.http.HttpServletRequest, ResourceBundle, String, String),
com.liferay.portal.language.LanguageImpl.get(Locale, String),
com.liferay.portal.language.LanguageImpl.get(javax.servlet.http.HttpServletRequest, String),
com.liferay.portal.language.LanguageImpl.get(Locale, String, String)
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${languageUtil.get(locale, "read-more")} [in template "null_CUSTOM_my-layout-template-project" at line 9, column 93]
----
Java stack trace (for programmers):
----
freemarker.core._TemplateModelException: [... Exception message was already printed; see it above ...]
at freemarker.ext.beans.OverloadedMethods.getMemberAndArguments(OverloadedMethods.java:102)
at freemarker.ext.beans.OverloadedMethodsModel.exec(OverloadedMethodsModel.java:60)
at freemarker.core.MethodCall._eval(MethodCall.java:62)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82)
at freemarker.core.DollarVariable.accept(DollarVariable.java:41)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.process(Environment.java:302)
at freemarker.template.Template.process(Template.java:325)
at com.liferay.portal.template.freemarker.internal.FreeMarkerTemplate.processTemplate(FreeMarkerTemplate.java:128)
at com.liferay.portal.template.AbstractSingleResourceTemplate.processTemplate(AbstractSingleResourceTemplate.java:96)
[...]
Caused by: freemarker.core._TemplateModelException: Multiple compatible overloaded variations were found with the same priority._The FTL type of the argument values were: Null, string (wrapper: f.t.SimpleScalar)._The Java type of the argument values were: Null, String._The matching overload was searched among these members:_ com.liferay.portal.language.LanguageImpl.get(ResourceBundle, String),_ com.liferay.portal.language.LanguageImpl.get(javax.servlet.http.HttpServletRequest, String, String),_ com.liferay.portal.language.LanguageImpl.get(ResourceBundle, String, String),_ com.liferay.portal.language.LanguageImpl.get(javax.servlet.http.HttpServletRequest, ResourceBundle, String),_ com.liferay.portal.language.LanguageImpl.get(javax.servlet.http.HttpServletRequest, ResourceBundle, String, String),_ com.liferay.portal.language.LanguageImpl.get(Locale, String),_ com.liferay.portal.language.LanguageImpl.get(javax.servlet.http.HttpServletRequest, String),_ com.liferay.portal.language.LanguageImpl.get(Locale, String, String)__----_FTL stack trace ("~" means nesting-related):_ - Failed at: ${languageUtil.get(locale, "read-more")} [in template "null_CUSTOM_my-layout-template-project" at line 9, column 93]_---- [Sanitized]
at freemarker.ext.beans.OverloadedMethods.getMemberAndArguments(OverloadedMethods.java:102)
at freemarker.ext.beans.OverloadedMethodsModel.exec(OverloadedMethodsModel.java:60)
at freemarker.core.MethodCall._eval(MethodCall.java:62)
at freemarker.core.Expression.eval(Expression.java:78)
at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82)
at freemarker.core.DollarVariable.accept(DollarVariable.java:41)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.MixedContent.accept(MixedContent.java:54)
at freemarker.core.Environment.visit(Environment.java:324)
at freemarker.core.Environment.process(Environment.java:302)
at freemarker.template.Template.process(Template.java:325)
at com.liferay.portal.template.freemarker.internal.FreeMarkerTemplate.processTemplate(FreeMarkerTemplate.java:128)
at com.liferay.portal.template.AbstractSingleResourceTemplate.processTemplate(AbstractSingleResourceTemplate.java:96)
... 71 more
INFO [Refresh Thread: Equinox Container: 8b19cc3b-1ff6-40e3-aebc-7c036213f440][LayoutTemplateHotDeployListener:105] 1 layout template for my-layout-template-project is available for use
INFO [Refresh Thread: Equinox Container: 8b19cc3b-1ff6-40e3-aebc-7c036213f440][BundleStartStopLogger:39] STARTED my-layout-template-project_1.0.0 [999]