Status: Closed (View Workflow)
Affects Version/s: EAP_EWP 5.1.1
Fix Version/s: EAP_EWP 5.2.0
Component/s: Web Services
Steps to Reproduce:
Deploy a webservice with these qualities:
- Uses "wsdlLocation" attribute of the @WebService annotation
- The referenced WSDL has an XML preamble which specifies a non-default character encoding.
- Try to access the WSDL via the endpoint "?wsdl" URL
Release Notes Text:When requesting a WSDL or external XML schema from a JBossWS endpoint (e.g. with "?wsdl"), the XML declaration was omitted. This issue has been resolved and the declaration is now included with an encoding of "UTF-8".
Release Notes Docs Status:Documented as Resolved Issue
Docs QE Status:NEW
The XML preamble is omitted when serving external WSDL resources. This can cause problem when specifying a non-default character set using the XML preamble.
For example, you access an external XSD:
The file on the server starts like this:
But when it's served to a client, it starts like this:
This affects the WSDL and any resources referenced by the WSDL.
Looking at the code, this is what happens when a request for a WSDL resource is received:
- The WSDL resource is read in from the file system.
- It is then parsed into a DOM tree.
- JBossWS then replaces references to external resources with appropriate URLs that can be reached using "?wsdl" URLs.
- The DOM tree is then marshaled to XML text.
In this process, the XML preamble is lost.