Uploaded image for project: 'JBoss Web Services'
  1. JBoss Web Services
  2. JBWS-3339

Preamble is omitted when supplying WSDL and external XSDs

XMLWordPrintable

    • Hide

      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
      Show
      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

      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:

      http://localhost:8080/testService/Service?wsdl&resource=external.xsd

      The file on the server starts like this:

      <?xml version="1.0" encoding="UTF-8"?>
      <xsd:schema ...>
        ...
      </xsd:schema>
      

      But when it's served to a client, it starts like this:

      <xsd:schema ...>
        ...
      </xsd:schema>
      

      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.

              Unassigned Unassigned
              rh-ee-klape Kyle Lape
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: