Confluence requires extra configuration to run in Resin 3.
As of Confluence 2.3 you can just need to update web.xml for Resin 3 with the shipped resin3 version of web.xml.
In older versions, follow the instructions below.
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
参考資料
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!
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
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.
変更前:
<?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>
変更後:
<?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:
変更前:
<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>
変更後:
<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 should now run under Resin 3.0. Please report any other bugs as you find them.