問題
- JARファイルを再展開すると、taglibが freemarker.template.TemplateModelException エラーを投げる。
-
再現するための手順
1. サーバーを起動する
2. サイトメニューに移動する> コンテンツ & データ > ブログ
3. 新しいブログを作成し、サイトメニュー > デザイン > テンプレート > ウィジェットテンプレート
に移動します 4. プラスアイコンをクリックし、「Asset Publisher」(Taglib testという名前)を選択し、以下のコードを追加します:<#if entries?has_content> <#list entries as curEntry> <#assign assetRenderer=curEntry.getAssetRenderer() viewURL=assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, curEntry, !stringUtil.equals(assetLinkBehavior, "showFullContent" )) curBlogEntry=assetRenderer.getAssetObject() /> <h1>${curEntry.title}</h1> <@liferay_ratings["ratings"] className="com.liferay.blogs.model.BlogsEntry" classPK=curBlogEntry.getEntryId() /> </#list> </#if>
期待される動作: Taglibは問題なく動作するはずです。
5. サイトビルダー > ページ
に移動する 6. 白紙のページを作成します。 次に、作成されたページに移動し、「Asset Publisher portlet'」をドロップします。
7. Asset Publisherの設定に移動(カーソルを合わせると右上に)
8. セットアップタブで「資産選択」タブを選択します。
9. 資産選択として「Dynamic' 」を選択
10. 資産タイプとして「ブログエントリー」を選択し、「保存」をクリックします
11. 設定タブで、 「ディスプレイ設定」
12.を選択します。 表示テンプレート「Taglib test」を選択し、「Save」をクリックする
13. ブログタイトルは、Taglib
14の情報とともに表示されます。 com.liferay.ratings.taglib.servlet.taglib.RatingsTag クラスに空行または System.out.ptintln() を1行追加し、ratings-taglib モジュールをマスターからデプロイします。
15. デプロイに成功した後 Asset Publisherがあるページに戻り、FreeMarkerのエラーメッセージが表示される。
観測された動作: Taglib は FreeMarker エラーを投げる。
Environment
- Liferay DXP 7.4
解決策
- 観測された動作は、Liferay DXP 7.4 update 79に既に含まれている LPS-183229 によって対処された既知のバグです。
追加情報
- Hotfixが必要な場合は、パッチの詳細を添付して、Hotfixを要求するサポートチケットを作成してください。
- Liferay DXPへのFix PackとHotfixのインストール では、お客様の環境でのFixpack/Hotfixのインストール方法をご案内しています。
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン