Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-9695

SchemaLocation of imported schemas rewritten in WSDL take address from proxy-host and not wsdl-host.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • EAP 6.0.0 ER 8
    • Web Services
    • JBoss Enterprise Application Platform 6.0.0.GA

    • Hide

      1) Make the changes in the configuration as described (using a proxy-name and wsdl-host of your choosing)
      2) Deploy the attached example which contains a WSDL and referred XSD.
      3) Browse to the WSDL directly and you will see the schemaLocation and soap:address do not match

      Show
      1) Make the changes in the configuration as described (using a proxy-name and wsdl-host of your choosing) 2) Deploy the attached example which contains a WSDL and referred XSD. 3) Browse to the WSDL directly and you will see the schemaLocation and soap:address do not match
    • Workaround Exists
    • Hide

      Package the WSDL in your application and change the schemaLocation by hand. Use the @Webservice.wsdlLocation attribute to refer to the packaged WSDL avoiding JBoss rewriting the wrong address in the schemaLocation.

      Show
      Package the WSDL in your application and change the schemaLocation by hand. Use the @Webservice.wsdlLocation attribute to refer to the packaged WSDL avoiding JBoss rewriting the wrong address in the schemaLocation.
    • NEW

      If you add a proxy to the HTTP/1.1 connector in standalone.xml

            <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
                  <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" proxy-name="someothermachine.somewhere" proxy-port="8080"/>
                  <virtual-server name="default-host" enable-welcome-root="true">
                      <alias name="localhost"/>
                      <alias name="example.com"/>
                  </virtual-server>
              </subsystem>
      

      and you also have a rewrite rule in web service subsystem

              <subsystem xmlns="urn:jboss:domain:webservices:1.1">
                  <modify-wsdl-address>true</modify-wsdl-address>
                  <wsdl-host>wsdlHostAddress</wsdl-host>
                  <endpoint-config name="Standard-Endpoint-Config"/>
                  <endpoint-config name="Recording-Endpoint-Config">
                      <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
                          <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
                      </pre-handler-chain>
                  </endpoint-config>
              </subsystem>
      

      The resulting WSDL published by JBoss will have the schemaLocation as the proxy-name and not the wsdl-host. This results in clients unable to process the WSDL

        1. jaxws-jbws2526.war
          6 kB
          Mustafa Musaji
        2. jbpapp9695.diff
          2 kB
          Kyle Lape

            rhn-support-asoldano Alessio Soldano
            rhn-support-mus Mustafa Musaji
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: