Index: C:/SECUREX/data/eclipsews-webservices/xfire/xfire-core/src/main/org/codehaus/xfire/wsdl11/ResolverWSDLLocator.java =================================================================== --- C:/SECUREX/data/eclipsews-webservices/xfire/xfire-core/src/main/org/codehaus/xfire/wsdl11/ResolverWSDLLocator.java (revision 2100) +++ C:/SECUREX/data/eclipsews-webservices/xfire/xfire-core/src/main/org/codehaus/xfire/wsdl11/ResolverWSDLLocator.java (working copy) @@ -25,6 +25,8 @@ private String baseURI; private String lastimport = ""; + + private String lastImportUri = null; private InputSource inputsource = null; @@ -60,19 +62,23 @@ * @see javax.wsdl.xml.WSDLLocator#getImportInputSource(java.lang.String, * java.lang.String) */ - public InputSource getImportInputSource(String arg0, String name) + public InputSource getImportInputSource(String parentLocation, String name) { Resolver resolver; InputSource result = null; - // Set the last imported value. - lastimport = name; try { - resolver = new Resolver(baseURI, name); + if(parentLocation != null && parentLocation.equals(lastimport)) + resolver = new Resolver(lastImportUri, name); + else + resolver = new Resolver(baseURI, name); InputStream is = resolver.getInputStream(); if (is != null) result = new InputSource(resolver.getInputStream()); + //set last import value and its uri + lastimport = name; + lastImportUri = resolver.getURI().toString(); } catch (IOException e) {