[ 
https://issues.apache.org/jira/browse/AXIS2-4451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13157217#comment-13157217
 ] 

Warren Janssens commented on AXIS2-4451:
----------------------------------------

I'm having the exact same problem -- only the first level of xsd files is 
having the schemaLocation rewritten.  Having multiple xsd files is a perfectly 
legitimate use case so I'm not sure I'm not sure why this is marked as invalid. 
 What other strategies are there for serving large hierarchies of xsd files?
                
> Incorrect resolution of imported schema URLs
> --------------------------------------------
>
>                 Key: AXIS2-4451
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4451
>             Project: Axis2
>          Issue Type: Bug
>          Components: wsdl
>    Affects Versions: 1.4.1
>            Reporter: dmitry beransky
>            Assignee: Senaka Fernando
>            Priority: Critical
>             Fix For: 1.6.0
>
>
> [see the original email thread here: 
> http://www.nabble.com/schema-location-resolution-td24648927.html]
> I have several services deployed under Axis2: S1, S1, S3.  Each service 
> packages it's own but identical to others copy of enterprise-common.xsd that 
> gets imported from each service's specific schema file: [S1.wsdl <-- S1.xsd 
> <-- enterprise-common.xsd; S3.wsdl <-- S3.xsd <-- enterprise.common.xsd].
> Let's say I next deploy a new service S4 which also has a copy of 
> enterprise-common.xsd, but this copy is different from those included with 
> other services (it has new element and type definitions).
> The location of S4's wsdl is <http://localhost/axis2/services/S4?wsdl>.
> When Axis2 serves the WSDL document, it rewrites schemaLocation to be 
> 'schemaLocation="S4?xsd=S4.xsd"'.  So, S4.xsd's absolute URL becomes
> <http://location/axis2/services/S4?xsd=S4.xsd>.
> enterprise-common.xsd location inside of S4.xsd is defined as 
> 'schemaLocation="enterprise-common.xsd"'.  When Axis2 returns S4.xsd
> it doesn't rewrite schema's location like it does with the wsdl document, so 
> enterprise-common.xsd's absolute URL becomes
> <http://localhost/axis2/services/enterprise-common.xsd>.
> When Axis2 recieves a request for 
> <http://localhost/axis2/services/enterprise-common.xsd>, which now doesn't 
> have a service binding in the URL, as far as I can tell, it simply goes 
> through all installed .aars looking for one that has the file.  It finds it 
> in the first service installed, say for example, S1.  Unfortunately, S1 has 
> the old version of enterprise-common.xsd that will against service S4.
> Also, consider these three URLs: 
> 1. http://localhost/axis2/services/enterprise-common.xsd
> 2. http://localhost/axis2/services/S4/enterprise-common.xsd
> 3. http://localhost/axis2/services/S4?xsd=enterprise-common.xsd
> Only #3 returns the schema that is defined inside of S4.aar (the newest 
> version).   #1 & #2 return an older version of enterprise-common.xsd that 
> sits in other .aars.  If I undeploy S1, S2, and S3 .aars, then #1 & #2 return 
> the latest version from S4.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org
For additional commands, e-mail: java-dev-h...@axis.apache.org

Reply via email to