'Gadgets not Rendering due to java.lang.NoClassDefFoundError com.atlassian.jira.portal.PortalPageImpl' Due to Incompatible Plugin
症状
JIRA is unable to display a gadget and the following errors are thrown the logs:
2010-07-29 15:07:44,339 http-8082-11 ERROR hevans 907x327x2 12fy3le 94.193.81.193,127.0.0.1 /rest/gadget/1.0/issueTable/filter [atlassian.plugin.servlet.DefaultServletModuleManager] Unable to create filter
com.atlassian.plugin.servlet.util.LazyLoadedReference$InitializationException: java.lang.NoClassDefFoundError: com/atlassian/jira/portal/PortalPageImpl
at com.atlassian.plugin.servlet.util.LazyLoadedReference.get(LazyLoadedReference.java:94)
at com.atlassian.plugin.servlet.DefaultServletModuleManager.getFilter(DefaultServletModuleManager.java:321)
...
原因
The gadget is referencing a third-party plugin, which is using the old com.atlassian.jira.portal.PortalPageImpl
class. This class has deprecated since JIRA 4.1.x.
For similar cases, check if the class exists in the current JIRA version's directory e.g. <jira-installation>/atlassian-jira/WEB-INF/classes/com/atlassian/jira/portal
.
ソリューション
Remove the third party plugin that's using this deprecated class. Unfortunately, there's no good way to determine the root of the issue, so to find out which one, try removing installed plugins one at a time until the error stops.