[ 
https://issues.apache.org/jira/browse/ODE-1031?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Vorobiov updated ODE-1031:
-------------------------------
    Attachment: WSDLRegistry.zip
                ODE.log
                HelloWorld2.zip

> Deployment error - captureSchema: NULL model (unknown error)
> ------------------------------------------------------------
>
>                 Key: ODE-1031
>                 URL: https://issues.apache.org/jira/browse/ODE-1031
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Compilation/Parsing
>    Affects Versions: 1.3.6
>            Reporter: Igor Vorobiov
>            Priority: Minor
>         Attachments: HelloWorld2.zip, ODE.log, WSDLRegistry.zip
>
>
> Prerequirements: before reproduce and workaround the issue need to apply the 
> fix for  problem with using several internal schemas. It is commited in the 
> trunk:
>  https://github.com/apache/ode/commit/ccdba9fab2eb9821ab96f05a96dab65c27d3cb14
>  
> There is problem with schema capturing for wsdl that contains internal 
> schemas and one imports another:
> {code:xml}
>       <wsdl:types>
>               <xsd:schema targetNamespace="http://ode/bpel/unit-test.wsdl";>
>                       <xsd:import namespace="http://ode/bpel/import/types"; />
>                       <xsd:simpleType name="dummy">
>                               <xsd:restriction base="d:dummyType" />
>                       </xsd:simpleType>
>               </xsd:schema>
>               <xsd:schema targetNamespace="http://ode/bpel/import/types";>
>                       <xsd:simpleType name="dummyType">
>                               <xsd:restriction base="xsd:string" />
>                       </xsd:simpleType>
>               </xsd:schema>
>       </wsdl:types>
> {code}
> To workaround this problem it is enough to change schemas order(put 
> "http://ode/bpel/import/types"; on the top). 
> Bug is related to resolving entity in 
> org.apache.ode.bpel.compiler.WsdlFinderXMLEntityResolver.resolveEntity(XMLResourceIdentifier).
> This method searches imported schemas in the _internalSchemas map:
>     _internalSchemas.get(new URI(resourceIdentifier.getNamespace()))
> This map is populated in 
> org.apache.ode.bpel.compiler.WSDLRegistry.captureSchemas(Definition, 
> ResourceFinder, URI). But since second(imported) schema is not put to map so 
> "resolveEntity" returns null.
> To fix the problem we need to populate _internalSchemas map before schema 
> capturing.
> Attached:
>   - HelloWorld2.zip that can be used to reproduce the issue;
>   - ODE.log where error can be found if DEBUG level is enabled for 
> "org.apache.ode.utils.xsd" package;
>   - my fix "WSDLRegistry.zip\WSDLRegistry(my fix).java".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to