Confluence and SOAP on Resin

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

The WSDL generated by Confluence on the Resin application server is invalid.

Diagnosis

The WSDL generated by Confluence on the Resin application server is invalid. Attempting to parse it gives you an error like this (using Axis as the client):

WSDLException (at /wsdl:definitions/types): faultCode=INVALID_WSDL: Encountered illegal extension element 'types' in the context of a 'javax.wsdl.Definition'. Extension elements must be in a namespace other than WSDL's.:

Cause

The default XML parser included with the Resin application server is incompatible with the Axis SOAP library, and causes Axis to generate an invalid WSDL file. You can find information about this on Apache's JIRA instance.

Solution

The solution is to override Resin's default XML parser by placing the following within the <server> section of resin.conf:

<system-property javax.xml.parsers.DocumentBuilderFactory="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/> <system-property javax.xml.parsers.SAXParserFactory="org.apache.xerces.jaxp.SAXParserFactoryImpl"/>

(You can also make this configuration per web-app by putting it in the <web-app> section.)

The Confluence issue for this error is at CONF-5953.

Updated on June 6, 2025

Still need help?

The Atlassian Community is here for you.