After upgrading to Confluence 4.0 plugins report "NoSuchMethodError"
症状
When upgrading to Confluence 4.0 some pages may not be accessible any more with following symptoms:
- You are redirected to Page Not Found error
- In the logs, you see something similar to:
2011-09-19 18:15:31,301 ERROR [TP-Processor1] [[Standalone].[localhost].[/confluence].[action]] log Servlet.service() for servlet action threw exception
-- referer: http://site/confluence/dashboard.action | url: /confluence/display/Space/Somespace | userName: hello
-------->java.lang.NoSuchMethodError: com.atlassian.confluence.core.ContentEntityObject.getContent()Ljava/lang/String;
at net.customware.confluence.plugin.pageapproval.PageApprovalSpaceViewPageAction.execute(PageApprovalSpaceViewPageAction.java:58)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
Notice the source of the error is generated by: ContentEntityObject.getContent();
原因
The atlassian plugin is making an invalid remote procedure (ContentEntityObject.getContent()) call to view the page's wiki markup content. Confluence 4.0 no longer stores the page internally as wikimarkup but instead XHTML. This is also known to be caused by incompatibility issue of Page Approval Plugin.
回避策
The workaround is to temporarily disabling the plugin (eg. Page Approval Plugin) until a 4.0 compatible version is available.
Alternatively you can disable the macro from the Universal Plugin Manager.
If you would like check if a particular macro is being used before upgrading to 4.0 (e.g. bookmarks macro) they can install macro usage plugin. This will help identify which pages use a particular macro.
ソリューション
Please contact the plugin provider for a Confluence 4.0 compatible update.