The Symptoms
Whenever you use Confluence under Resin 3.0:
- You can't seem to stay logged in, and are continually asked to enter your username and password
- The Edit tab (or other links) only appear if you grant Anonymous users permission to perform those functions
See also:
| Resin 2 Users Confluence has always run without modification on Resin 2.1.11 and later. These instructions only apply to Resin 3.0 |
| Resin and SOAP If you want to use Confluence's SOAP interface under Resin, you will need to follow these instructions as well: Confluence and SOAP on Resin |
The Solution
Resin 3.0 does not correctly support the Servlet 2.3 specification. Confluence relies on this specification to function. The workaround is to modify Confluence's web.xml file so that it is conformant with the Servlet 2.4 specification. A big thankyou to Matthew Schmidt for supplying us with this workaround.
Premodified files
You can download one of the premodified web.xml files that are attached to this page. After downloading rename to web.xml and place in the $confluenceWebapp/WEB-INF/ directory, overwriting the existing web.xml in there. Don't forget to keep a backup!
Confluence Release |
File |
|---|---|
2.1 |
|
2.1.2 |
|
2.1.4 |
|
2.2.1a |
|
2.2.4 |
Please only use the file with the exact version of Confluence you are using. An incorrect web.xml file can cause strange problems. You can follow the instructions below to patch any other version.
Modifying web.xml manually
Step One: The web.xml header
First, you will need to change the XML preamble for the web.xml file. Servlet 2.3 validates against a DTD, Servlet 2.4 validates against a schema. Also note that the <display-name> and <description> elements have reversed orders.
Before:
After:
Step two: filter-mapping dispatchers
Move down web.xml until you find the definition of the login filter-mapping. You need to change the definitions of the login, security and sitemesh filters:
Before:
After:
| Confluence 2.0 In Confluence 2.0, you will need to add dispatcher tags to another of the sitemesh filter mappings: You will also need to find all the Before After This will need to be done for the |
| Confluence 2.1 In addition to the Confluence 2.0 modifications you will also need to remove the Selenese servlet and mappings: Otherwise you might get the following error when starting up resin: com.caucho.config.LineConfigException: WEB-INF/web.xml:582: `com.thoughtworks.selenium.outbedded.CommandBridge' is not a known servlet. Servlets belong in the classpath, often in WEB-INF/classes. |
| Confluence 2.2 The removal of the |
Done
Confluence should now run under Resin 3.0. Please report any other bugs as you find them.






