[ http://issues.apache.org/jira/browse/AXIS2-1087?page=comments#action_12431027 ] Lori VanGulick commented on AXIS2-1087: ---------------------------------------
This is still failing in revision 437740. Here is the structure of the wsdl and xsd: WEB-INF/wsdl/EchoService.wsdl WEB-INF/wsdl/porttype/Echo.wsdl WEB-INF/wsdl/xsd/Echo.xsd EchoService.wsdl imports "porttype/Echo.wsdl." This works fine (using a custom WSDLLocator). Echo.wsdl imports "../xsd/Echo.xsd". This fails with the following exception: Exception: org.apache.axis2.AxisFault: org.apache.ws.commons.schema.XmlSchemaException: C:\axis2\modules\kernel\target\test-classes\WEB-INF\xsd\Echo.xsd (The system cannot find the path specified.); nested exception is: java.lang.RuntimeException: org.apache.ws.commons.schema.XmlSchemaException: C:\axis2\modules\kernel\target\test-classes\WEB-INF\xsd\Echo.xsd (The system cannot find the path specified.) The problem is in WSDL11ToAxisServiceBuilder.copyExtensibleElements. Around line 1557: } else if (wsdl4jElement instanceof Schema) { Schema schema = (Schema) wsdl4jElement; // just add this schema - no need to worry about the imported // ones axisService.addSchema(getXMLSchema(schema.getElement(), wsdl4jDefinition.getDocumentBaseURI())); The baseURI passed to getXMLSchema is from the definition which cooresponds to EchoService.wsdl. What we want is the baseURI from Echo.wsdl, since that is the file that is importing the schema. I have tried fixing this by using the baseURI from the schema Element instead of from the base definition, like this: axisService.addSchema(getXMLSchema(schema.getElement(), schema.getDocumentBaseURI())); This change does work for relative URIs, like in my testcase. But I think it might introduce problems with absolute URIs. I am still looking at it. > CLONE -Problem with resolving imported schemas from WSDL11ToAxisServiceBuilder > ------------------------------------------------------------------------------ > > Key: AXIS2-1087 > URL: http://issues.apache.org/jira/browse/AXIS2-1087 > Project: Apache Axis 2.0 (Axis2) > Issue Type: Bug > Components: core > Reporter: Lori VanGulick > Assigned To: Ajith Harshana Ranabahu > > When importing nested schemas with a relative path, I have noticed a problem > with the base URI that the WSDL11ToAxisServiceBuilder passes to the > getXMLSchema method. Considering the structure: > WEB-INF/wsdl/porttype/Echo.wsdl > and > WEB-INF/wsdl/xsd/Echo.xsd > If Echo.wsdl has an import statement like "../xsd/Echo.xsd", the schema will > fail to import. The issue seems to be that the WSDL11ToAxisServiceBuilder > passes the string "WEB-INF/wsdl" as the base URI. This causes the > implementation of the org.apache.ws.commons.schema.resolver.URIResolver not > to be able to resolve the relative location with the base URI. I wanted to > point out this problem, and I am not looking for an immediate patch. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]