問題
-
リソース」オプション(Control Panel → Configuration → Server Administration → Resource)が空白のため、「全検索の再インデックス化実行」ができず、サーバーコンソールで以下のエラーが発生することがあります。
ERROR [default task-98][IncludeTag:128] Current URL /group/control_panel/manage?p_p_id=com_liferay_server_admin_web_portlet_ServerAdminPortlet&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&_com_liferay_server_admin_web_portlet_ServerAdminPortlet_mvcRenderCommandName=%2Fserver_admin%2Fview&_com_liferay_server_admin_web_portlet_ServerAdminPortlet_tabs1=resources&_com_liferay_server_admin_web_portlet_ServerAdminPortlet_tabs2= generates exception: java.lang.NullPointerException
java.lang.NullPointerException
at com.liferay.portal.kernel.backgroundtask.display.BaseBackgroundTaskDisplay.getBackgroundTaskStatusAttributeLong(BaseBackgroundTaskDisplay.java:133)
at com.liferay.portal.search.internal.background.task.display.ReindexBackgroundTaskDisplay.getPercentage(ReindexBackgroundTaskDisplay.java:37)
at com.liferay.portal.kernel.backgroundtask.display.BaseBackgroundTaskDisplay.hasPercentage(BaseBackgroundTaskDisplay.java:77)
at org.apache.jsp.resources_jsp._jspService(resources_jsp:900)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
環境
- Liferay DXP 7.0
解像度
-
lock _ および backgroundtask <にデータが存在する場合、「リソース」オプションは空白で表示されます。 インデックスの再作成とクリアに関連するテーブルは、[リソース] オプションにアクセスするのに役立ちます。
-
両テーブルに存在するデータをクリアする手順
コントロールパネル > 設定 > サーバー管理 > スクリプト 以下のgroovyスクリプトを1つずつ貼り付け、実行します。
a) 以下のgroovyスクリプトを使用して、reindex lock のエントリーを削除します:
lockId を、データベースに存在するそれぞれの Id に置き換える。
com.liferay.portal.lock.service.LockLocalServiceUtil.deleteLock(long lockId)
out.println(Deleted Lock Entry);
b) 以下のgroovyスクリプトを使用して、reindex BackgroundTask のエントリーを削除します:
com.liferay.portal.background.task.service.BackgroundTaskLocalServiceUtil.deleteBackgroundTask(long backgroundTaskId)
out.println(Deleted BackgroundTask Entry);backgroundTaskId を、データベースに存在するそれぞれの Id に置き換えてください。
追加情報
重要な注意事項: 変更を行う前に、環境の完全なバックアップを取っておくと、予期せぬことが起こったときに役立ちます。