Confluence and SOAP on Resin

Still need help?

The Atlassian Community is here for you.

Ask the community

The content on this page relates to platforms that are not supported for Confluence. Consequently, Atlassian can not guarantee providing any support for the steps described on this page. Please be aware that this material is provided for your information only, and that you use it at your own risk.

Symptom

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. For more information see this page: JAXP - specifying XML and XSLT implementations)

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

Last modified on Oct 7, 2015

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.