Unable to Enable Workbox's Notifications and Tasks - Host Plugin Due to NoClassDefFoundError

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

In the newer version of Confluence, Notifications and Tasks Plugin is called Workbox Plugin.

Symptoms

  1. Workbox Icon is not shown in the dashboard

  2. Some modules, or even the entire Notifications and Tasks - Host Plugin in Confluence Admin >> Plugins is disabled, and cannot be enabled

  3. The Notifications and Tasks - Host Plugin is listed as a User Installed Plugin instead of a System Plugin

  4. Confluence is being deployed as a webapp in a Tomcat 7 container

The following appears in the atlassian-confluence.log during startup:

2012-09-21 23:19:41,753 ERROR [Spring executor 1] [plugin.osgi.factory.OsgiPlugin] onSpringContextFailed Unable to start the Spring context for plugin com.atlassian.activeobjects.activeobjects-plugin org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'handler' defined in URL [bundle://26.0:0/META-INF/spring/web-context.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355) at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320) at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletContext at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.privateGetPublicMethods(Class.java:2547) at java.lang.Class.getMethods(Class.java:1410) at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1284) at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1158) at java.beans.Introspector.getBeanInfo(Introspector.java:408) at java.beans.Introspector.getBeanInfo(Introspector.java:167) at java.beans.Introspector.getBeanInfo(Introspector.java:230) at java.beans.Introspector.<init>(Introspector.java:389) at java.beans.Introspector.getBeanInfo(Introspector.java:167) at java.beans.Introspector.getBeanInfo(Introspector.java:230) at java.beans.Introspector.<init>(Introspector.java:389) at java.beans.Introspector.getBeanInfo(Introspector.java:167) at java.beans.Introspector.getBeanInfo(Introspector.java:230) at java.beans.Introspector.<init>(Introspector.java:389) at java.beans.Introspector.getBeanInfo(Introspector.java:167) at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:220) at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:144) at org.springframework.beans.BeanWrapperImpl.getCachedIntrospectionResults(BeanWrapperImpl.java:252) at org.springframework.beans.BeanWrapperImpl.getPropertyDescriptorInternal(BeanWrapperImpl.java:282) at org.springframework.beans.BeanWrapperImpl.isWritableProperty(BeanWrapperImpl.java:333) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1247) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) ... 18 more Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContext at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:772) at org.apache.felix.framework.ModuleImpl.access$200(ModuleImpl.java:73) at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1690) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 43 more

When enabling the Host Plugin, the following may appear in the atlassian-confluence.log:

2013-01-17 15:38:14,755 ERROR [http-bio-8085-exec-9] [atlassian.plugin.manager.DefaultPluginManager] enableConfiguredPluginModule There was an error loading the descriptor 'null' of plugin 'com.atlassian.mywork.mywork-confluence-host-plugin'. Disabling. -- referer: http://<confluence-url>/confluence/plugins/servlet/upm | url: /confluence/rest/plugins/1.0/com.atlassian.mywork.mywork-confluence-host-plugin-key | userName: admin java.lang.NullPointerException at com.atlassian.plugin.webresource.WebResourceModuleDescriptor$1.create(WebResourceModuleDescriptor.java:49) at com.atlassian.plugin.web.descriptors.ConditionElementParser.makeCondition(ConditionElementParser.java:150) at com.atlassian.plugin.web.descriptors.ConditionElementParser.makeConditions(ConditionElementParser.java:139) at com.atlassian.plugin.web.descriptors.ConditionElementParser.makeConditions(ConditionElementParser.java:86) ....

Diagnosis

Try to disable all Notifications and Tasks plugins in Confluence Admin >> Plugins . Then re-enable them by following this sequence:

  1. Enable the Notifications and Tasks - Common Plugin

  2. Enable the Notifications and Tasks - Host Plugin

  3. Enable the Notifications and Tasks - Confluence Provider Plugin

Remember, the 3 plugins have to be enabled in the sequence above, 1 by 1. Then proceed with the following:

  1. Shutdown Confluence

  2. Ensure the user running Confluence has full read/write privileges to the confluence-home directory.

  3. Remove the following directories

    ⚠️ This will remove the plugin cache files only and will not permanently remove any plugins. These directories will be recreated during the next Confluence startup. However, some third-party plugins may store metadata in these directories, so we recommend creating a temporary backup of the directories.

    • <confluence-home>/bundled-plugins

    • <confluence-home>/plugins-cache

    • <confluence-home>/plugins-osgi-cache

    • <confluence-home>/plugins-temp

    • <confluence-home>/bundled-plugins_language

  4. Start Confluence

If the issue still persists after Confluence restart, proceed to Resolution below.

Cause

The Active Objects plugin cannot be enabled due to missing classes in the Tomcat library. This is normally caused by the fact that Confluence is being deployed as a webapp in a Tomcat 7 container, which is not supported by Confluence 4.3. Please refer to Supported Platforms page for more details.

Solution

Resolution

  1. Shutdown the Tomcat 7 instance

  2. Deploy Confluence instead, in a Tomcat 6.0.35 container

  3. Startup the Tomcat 6.0.35 instance with Confluence in it

Updated on May 22, 2025

Still need help?

The Atlassian Community is here for you.