Description
In org.apache.axis2.description.AxisService#changeImportAndIncludeLocations
we are updating import locations in wsdl file and any files being imported in the wsdl and marking the service as wsdlImportLocationAdjusted=true when the service/wsdl is first loaded. This is having issue if we are importing a .wsdl file in parent wsdl file.
We have below structure of wsdl
Main wsdl file - imports 2 files - bindings.wsdl and types.xsd
If main wsdl is accessed first then the import locations are getting adjusted in all files and marking the axisservice as wsdlImportLocationAdjusted=true
But if bindings.wsdl is accessed first then the import locations in parent are not updated. Only import location in bindings.wsdl and any imported files in this wsdl are getting adjusted. And still the service is getting marked as wsdlImportLocationAdjusted=true. So the parent is never processed for location adjustments as wsdlImportLocationAdjusted is set to true
Refer below from AxisService
private synchronized void printDefinitionObject(Definition definition, OutputStream out, String requestIP) throws AxisFault, WSDLException {
if (this.isModifyUserWSDLPortAddress())
if (!this.wsdlImportLocationAdjusted) {
this.changeImportAndIncludeLocations(definition);
this.wsdlImportLocationAdjusted = true;
}
WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter();
writer.writeWSDL(definition, out);
}
Attachments
Issue Links
- causes
-
AXIS2-6045 NPE after upgrade to 1.8.2
- Open