Product: Confluence
Environment
| Operating System | |
|---|---|
| Affect Version/s | 2.6.0 |
| JVM | |
| Database | PostgreSQL |
| Application Server | Resin 3.0.x |
Error Message
@4000000047019e2e07813de4 2007-10-01 20:25:56,110 INFO [main] [com.atlassian.confluence.lifecycle] contextInitialized Starting Confluence 2.6.0 (build #913) @4000000047019e3307ea0234 [20:26:01.132] Loading Spring root WebApplicationContext @4000000047019e4c09bc9b6c 2007-10-01 20:26:26,150 ERROR [main] [user.configuration.xml.XMLConfigurationParser] instantiateProcessor Could not instantiate proces sor: com.atlassian.crowd.integration.atlassianuser.CrowdRepositoryProcessor [java.lang.NoClassDefFoundError: com/atlassian/user/configuration/AbstractRepository Processor] @4000000047019e4c0cb768c4 2007-10-01 20:26:26,203 WARN [main] [beans.factory.support.CglibSubclassingInstantiationStrategy] instantiate Factory method [public c om.atlassian.user.configuration.DelegationAccessor com.atlassian.user.configuration.xml.XMLConfiguration.getDelegationAccessor()] threw exception 500 Servlet Exception java.lang.NullPointerException at com.atlassian.spring.container.ContainerManager.getComponent(ContainerManager.java:32) at com.atlassian.confluence.core.ConfluenceActionSupport.getLocaleManager(ConfluenceActionSupport.java:612) at com.atlassian.confluence.core.ConfluenceActionSupport.getLocale(ConfluenceActionSupport.java:546) at com.atlassian.confluence.core.ConfluenceActionSupport.getI18n(ConfluenceActionSupport.java:600) at com.atlassian.confluence.admin.actions.ViewSystemInfoAction.getUptime(ViewSystemInfoAction.java:270) at com.atlassian.confluence.admin.actions.ViewSystemInfoAction.getBuildStats(ViewSystemInfoAction.java:126) at jsp._500page_jsp._jspService(500page.jsp:71) at com.caucho.jsp.JavaPage.service(JavaPage.java:60) at com.caucho.jsp.Page.pageservice(Page.java:570) at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:179) at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229) at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277) at com.caucho.server.webapp.RequestDispatcherImpl.error(RequestDispatcherImpl.java:113) at com.caucho.server.webapp.ErrorPageManager.sendServletError(ErrorPageManager.java:362) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229) at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:420) at com.caucho.server.port.TcpConnection.run(TcpConnection.java:511) at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520) at com.caucho.util.ThreadPool.run(ThreadPool.java:442) at java.lang.Thread.run(Thread.java:595)
Symptom
Diagnostics/Test
- Use of Incompatible Crowd libraries
Check what version of Crowd does the Confluence instance have in confluence's WEB-INF/lib ?
Crowd will be fine at version 1.1.1, it is the client code that needs to be running at the later version 1.1.2.
Reference: http://confluence.atlassian.com/display/CROWD/3.2.3+Integrating+Crowd+with+Atlassian+Confluence step 2.1.1
Use {{ ls -lah crowd}} inside the WEB-INF/lib folder to list the current libraries
rw-rr- 1 ... 54K Oct 1 20:54 crowd-atlassian-user-1.1.2.jar
rw-rr- 1 ... 285K Oct 1 20:54 crowd-core-1.1.2.jar
- atlassian-user.xml does not conform to 2.2.2
[user.configuration.xml.XMLConfigurationParser] instantiateProcessor Could not instantiate proces com.atlassian.crowd.integration.atlassianuser.CrowdRepositoryProcessor [java.lang.NoClassDefFoundError: com/atlassian/user/configuration/AbstractRepository
The error above implies that the XML parser that reads the atlassian-user.xml encountered a problem, syntaxtic, with the atlassian-user.xml file.
Root Cause
- Version Incompatibity
Currently Crowd supports centralised authentication and single sign-on (SSO) for Confluence versions 2.5.6 and later with Crowd 1.1.2 and later.
http://confluence.atlassian.com/display/CROWD/3.2.3+Integrating+Crowd+with+Atlassian+Confluence
Confluence version 2.6 require use of 1.1.2 and Crowd 1.1.1 libs (client)
- atlassian-user.xml validity
Up to the version 2.5.6 of Confluence user had to add the Crowd classes to the atlassian-user.xml file to specify the correct source of the repository.
Edit the CONFLUENCE/confluence/WEB-INF/classes/atlassian-user.xml file so that the contents of the file is:
<repository key="crowd" class="com.atlassian.crowd.integration.atlassianuser.CrowdRepository">
<classes>
<processor>com.atlassian.crowd.integration.atlassianuser.CrowdRepositoryProcessor</processor>
<userManager>com.atlassian.crowd.integration.atlassianuser.CrowdUserManager</userManager>
<groupManager>com.atlassian.crowd.integration.atlassianuser.CrowdGroupManager</groupManager>
<authenticator>com.atlassian.crowd.integration.atlassianuser.CrowdAuthenticator</authenticator>
<propertySetFactory>com.atlassian.crowd.integration.atlassianuser.CrowdPropertySetFactory</propertySetFactory>
<entityQueryParser>com.atlassian.crowd.integration.atlassianuser.CrowdEntityQueryParser</entityQueryParser>
</classes>
</repository>
Since the 2.5.6 release, only the following Crowd repository name is required.
<repositories>
<crowd key="crowd" name="Crowd Repository"/>
</repositories>
</atlassian-user>
Solution
- I have found that crowd is not version 1.1.2, it is running 1.1.1. The jars are version 1.1.2.
- get the correct libraries
- ensure there are no duplicate libraries in the WEB-INF/lib
- You can see a situation where you have Crowd 1.1.1 running with the crowd-* 1.1.2 libs and experiencing a problem.
In this case the atlassian-user.xml could be the culprit.
