axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lori VanGulick (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-1087) CLONE -Problem with resolving imported schemas from WSDL11ToAxisServiceBuilder
Date Mon, 28 Aug 2006 17:56:22 GMT
    [ 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message