Axis2
  1. Axis2
  2. AXIS2-4436

Woden attempts to load http://www.w3.org/2001/XMLSchema.xsd every time it parses a WSDL document (or if Axis2 instructs Woden to do so)

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5
    • Fix Version/s: 1.7.0
    • Component/s: wsdl
    • Labels:
      None
    • Environment:
      Windows XP SP3, Sun JDK 1.6.0_13, Tomcat 6.0.20, Axis2 1.5 WAR

      Description

      When Axis2 tries to deploy a Webservices which has an explicit "wsdl2" file in its "aar" archive, Woden tries to access to the public URL of the name space xmlns:xs="http://www.w3.org/2001/XMLSchema" .

      If the jvm doesn't have a proxy configuration (eg. java networking properties ) the socket layer returns the exception "java.net.SocketException:Connection reset" after the timeout delay (30 seconds or something like this).

      For exemple when I put the sample "StudentService.aar" file ( See Keith Chapman's article : "RESTful Web Services with Apache Axis2" http://wso2.org/library/3726 ) in the "services" folder of an Axis2 v1.5 web application server, I got these lines in the tomcat log file:

      Woden[Warning],0:0,WSDL504,Could not locate the schema document at URL "http://www.w3.org/2001/XMLSchema.xsd",java.net.SocketException:Connection reset
      Woden[Warning],0:0,WSDL504,Could not locate the schema document at URL "http://www.w3.org/2001/XMLSchema",java.net.SocketException:Connection reset
      Woden[Warning],0:0,Description-1001,The targetNamespace 'http://axis2.apache.org' is not dereferencable.
      [INFO] Deploying Web service: StudentService.aar - file:/D:/_devs_intradon/X3_SERVERWSJULIET/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/com.sage.x3.serverws.axis2/WEB-INF/ services/StudentService.aar

        Activity

        Hide
        Sagara Gunathunga added a comment -

        WSDL20ToAxisServiceBuilder use AARBasedWSDLLocator as a customWSDLResolver. In order to resolve schema documents locally AARBasedWSDLLocator should look-up with any catalog before it load over the network but current resolveURI(URI unResUri) method does not invoke any catalog and hence it always try to access schema over the network .

        It is possible to solve this by Invoking Woden's default URIResolver under the resolveURI(URI unResUri) method to find out whether the particular schema is locally available or not , if it is available return the local URL.

        Show
        Sagara Gunathunga added a comment - WSDL20ToAxisServiceBuilder use AARBasedWSDLLocator as a customWSDLResolver. In order to resolve schema documents locally AARBasedWSDLLocator should look-up with any catalog before it load over the network but current resolveURI(URI unResUri) method does not invoke any catalog and hence it always try to access schema over the network . It is possible to solve this by Invoking Woden's default URIResolver under the resolveURI(URI unResUri) method to find out whether the particular schema is locally available or not , if it is available return the local URL.
        Hide
        Sagara Gunathunga added a comment -

        Fix for AXIS2-4521 will work for this too.

        Show
        Sagara Gunathunga added a comment - Fix for AXIS2-4521 will work for this too.

          People

          • Assignee:
            Unassigned
            Reporter:
            olivier gattaz
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development