This documentation relates to the latest version of Confluence.
If you are using an earlier version, please go to the documentation home page and select the relevant version.

Known Issues for Resin 3.x

All Versions
Click for all versions
Confluence 2.9 Documentation

Index

Confluence requires extra configuration to run in Resin 3.

Confluence 2.3 and Later

As of Confluence 2.3 you can just need to update web.xml for Resin 3 with the shipped resin3 version of web.xml.

Confluence 2.7 and Later – Configure Resin to use a XSD-aware parser

Confluence is bundled with Xerces, which is an XSD-aware parser. Instructions on how to configure resin to use Xerces can be found here. For more information, refer to the Spring Framework documentation

Known Issues in Confluence 2.0, 2.1 and 2.2

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 resin-3.conf-2.1-web.xml
2.1.2 resin-3.conf-2.1.2-web.xml
2.1.4 resin-3.conf-2.1.4-web.xml
2.2.1a resin-3.conf-2.2.1a-web.xml
2.2.4 resin-3.conf-2.2.4-web.xml

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:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
    <display-name>Confluence</display-name>
    <description>Confluence Web App</description>

After:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="ConfluenceWebApp" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <description>Confluence Web App</description>
    <display-name>Confluence</display-name>
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:

<filter-mapping>
        <filter-name>login</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>security</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>*.vm</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/display/*</url-pattern>
    </filter-mapping>

After:

<filter-mapping>
        <filter-name>login</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

    <filter-mapping>
        <filter-name>security</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>*.action</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>*.vm</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/display/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
Confluence 2.0

In Confluence 2.0, you will need to add dispatcher tags to another of the sitemesh filter mappings:

<filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/label/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

You will also need to find all the <display-name> servlet attributes and remove them as well. For example:

Before

<servlet>
      <servlet-name>dwr-invoker</servlet-name>
      <display-name>DWR Servlet</display-name>
      <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

After

<servlet>
      <servlet-name>dwr-invoker</servlet-name>
      <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

This will need to be done for the dwr-invoker, labels-javascript, editpage-javascript, wysiwyg-javascript, labels and tinymce servlets.

Confluence 2.1

In addition to the Confluence 2.0 modifications you will also need to remove the Selenese servlet and mappings:

<servlet>
        <servlet-name>SeleneseServletSpike</servlet-name>
        <servlet-class>com.thoughtworks.selenium.outbedded.CommandBridge</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>SeleneseServletSpike</servlet-name>
        <url-pattern>/selenium-driver/driver</url-pattern>
    </servlet-mapping>

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 <display-name/> element from the dwr-invoker, labels-javascript, editpage-javascript, wysiwyg-javascript, labels and tinymce servlets, as described in the Confluence 2.0 appendage, is no longer required.

Done

Confluence should now run under Resin 3.0. Please report any other bugs as you find them.

Labels:

resin resin Delete
appserver appserver Delete
troubleshooting troubleshooting Delete
resin3 resin3 Delete
installation installation Delete
web web Delete
xml xml Delete
known-issues-appserver known-issues-appserver Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.
  1. Sep 26, 2005

    Anonymous says:

    Also check out Resin GC settings

    Also check out Resin GC settings to make sure that Confluence runs smoothly !!!

    -Stephan

    1. Oct 04, 2005

      stephan janssen says:

      Other Resin settings which you might consider changing in resin.conf are : <dep...

      Other Resin settings which you might consider changing in resin.conf are :

      <dependency-check-interval>6000s</dependency-check-interval>

      <cache path="cache" memory-size="32M"/>

      <min-free-memory>100M</min-free-memory>

      This last setting is dependant of your actual heap size,
      but when it reaches this point it will restart resin. Of course
      this doesn't solve a potential memory leak.

  2. Sep 27, 2005

    Anonymous says:

    The <description> element will be out of order if you use 1.4.4 and these instru...

    The <description> element will be out of order if you use 1.4.4 and these instructions. I ended up deleting the element, though moving it down a bit works too.

  3. Nov 18, 2005

    Geert Bevin says:

    With Resin 2.0 you need to do more work. You need to remove all the <displayname...

    With Resin 2.0 you need to do more work. You need to remove all the <display-name> tags inside the <servlet> tags. You also need to add the <dispatcher> tag to an additional sitemesh filter mapping: "/label/*".

  4. Dec 05, 2005

    Dan Hardiker says:

    Perhaps it would be an idea to have a web.resin3.xml file bundled with the distr...

    Perhaps it would be an idea to have a web.resin3.xml file bundled with the distribution, or at least the various modified web.xml files for the different distributions of both resin and confluence.

    1. Dec 05, 2005

      Jens Schumacher says:

      Thanks for the suggestion Dan. I have created an issue for it:

      Thanks for the suggestion Dan. I have created an issue for it:

      http://jira.atlassian.com/browse/CONF-4845

  5. Sep 25, 2007

    Dan Hardiker says:

    This issue is also becoming a major issue for us:

    This issue is also becoming a major issue for us: http://jira.atlassian.com/browse/CONF-8637

    We are even seriously considering a move away from Resin because of it.

Add Comment