You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Jonathan Coogan <Jo...@Attachmate.com> on 2009/05/01 23:19:27 UTC
CompilationException for certain WSDLs
Hi. I've noticed that Ode 1.X will throw a CompilationException for
BPEL processes that import certain types of WSDLs. These same
processes/WSDLs work fine in Ode 1.2.
I think it has something to do with local schema imports. Take this
WSDL, for example.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="mytestnamespace"
xmlns:ns1="mytestnamespace" xmlns:ns2="myothertestnamespace"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/
<BLOCKED::http://schemas.xmlsoap.org/wsdl/> "
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/
<BLOCKED::http://schemas.xmlsoap.org/wsdl/soap/> "
xmlns:xsd="http://www.w3.org/2001/XMLSchema
<BLOCKED::http://www.w3.org/2001/XMLSchema> ">
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="mytestnamespace"
xmlns="http://www.w3.org/2001/XMLSchema
<BLOCKED::http://www.w3.org/2001/XMLSchema> ">
<import namespace="myothertestnamespace"/>
<element name="request">
<complexType>
<sequence>
<element name="in" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="response">
<complexType>
<sequence>
<element name="out" type="ns2:SomeType"/>
</sequence>
</complexType>
</element>
</schema>
<schema elementFormDefault="qualified"
targetNamespace="myothertestnamespace"
xmlns="http://www.w3.org/2001/XMLSchema
<BLOCKED::http://www.w3.org/2001/XMLSchema> ">
<import namespace="mytestnamespace"/>
<complexType name="SomeType">
<sequence>
<element name="Blah" type="xsd:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="Request">
<wsdl:part element="ns1:request" name="parameters"/>
</wsdl:message>
<wsdl:message name="Response">
<wsdl:part element="ns1:response" name="parameters"/>
</wsdl:message>
<wsdl:portType name="TestPortType">
<wsdl:operation name="DoSomething">
<wsdl:input message="ns1:Request" name="Request"/>
<wsdl:output message="ns1:Response" name="Response"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TestSoapBinding" type="ns1:TestPortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/
<BLOCKED::http://schemas.xmlsoap.org/soap/http"/> >
<wsdl:operation name="DoSomething">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="Request">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="Response">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TestService">
<wsdl:port binding="ns1:TestSoapBinding" name="Test">
<wsdlsoap:address location="http://localhost/Test"/
<BLOCKED::http://localhost/Test"/> >
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
If you create a BPEL process that imports this WSDL, Ode will not deploy
it.
org.apache.ode.bpel.compiler.api.CompilationException: error:
[CompilationErrors] Compilation completed with 2 error(s):
file:/C:/Documents%20and%20Settings/Administrator/Desktop/apache-tomcat-
6.0.18/webapps/ode/WEB-INF/processes/test/imports/Test.wsdl:0: error:
[SchemaError] Error in schema processing: sch-props-correct.2: A schema
cannot contain two global components with the same name; this schema
contains two occurrences of 'mytestnamespace,request'.
file:/C:/Documents%20and%20Settings/Administrator/Desktop/apache-tomcat-
6.0.18/webapps/ode/WEB-INF/processes/test/imports/Test.wsdl:0: error:
[SchemaError] Error in schema processing: sch-props-correct.2: A schema
cannot contain two global components with the same name; this schema
contains two occurrences of 'myothertestnamespace,SomeType'.
at
org.apache.ode.bpel.compiler.BpelCompiler.compile(BpelCompiler.java:752)
at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:263)
at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:333)
at
org.apache.ode.store.DeploymentUnitDir$5.run(DeploymentUnitDir.java:176)
at org.apache.ode.utils.InternPool.runBlock(InternPool.java:57)
at
org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:17
3)
at
org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:13
7)
at
org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:176)
... 3 more
Am I missing something here? Should I write this up?
Thanks.
-Jon
Re: CompilationException for certain WSDLs
Posted by Matthieu Riou <ma...@gmail.com>.
On Mon, May 4, 2009 at 7:48 AM, Matthieu Riou <ma...@gmail.com>wrote:
> On Fri, May 1, 2009 at 2:19 PM, Jonathan Coogan <
> Jonathan.Coogan@attachmate.com> wrote:
>
>> Hi. I've noticed that Ode 1.X will throw a CompilationException for
>> BPEL processes that import certain types of WSDLs. These same
>> processes/WSDLs work fine in Ode 1.2.
>>
>> I think it has something to do with local schema imports. Take this
>> WSDL, for example.
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <wsdl:definitions targetNamespace="mytestnamespace"
>> xmlns:ns1="mytestnamespace" xmlns:ns2="myothertestnamespace"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/
>> <BLOCKED::http://schemas.xmlsoap.org/wsdl/> "
>> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/
>> <BLOCKED::http://schemas.xmlsoap.org/wsdl/soap/> "
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema
>> <BLOCKED::http://www.w3.org/2001/XMLSchema> ">
>> <wsdl:types>
>> <schema elementFormDefault="qualified"
>> targetNamespace="mytestnamespace"
>> xmlns="http://www.w3.org/2001/XMLSchema
>> <BLOCKED::http://www.w3.org/2001/XMLSchema> ">
>> <import namespace="myothertestnamespace"/>
>> <element name="request">
>> <complexType>
>> <sequence>
>> <element name="in" type="xsd:int"/>
>> </sequence>
>> </complexType>
>> </element>
>> <element name="response">
>> <complexType>
>> <sequence>
>> <element name="out" type="ns2:SomeType"/>
>> </sequence>
>> </complexType>
>> </element>
>> </schema>
>> <schema elementFormDefault="qualified"
>> targetNamespace="myothertestnamespace"
>> xmlns="http://www.w3.org/2001/XMLSchema
>> <BLOCKED::http://www.w3.org/2001/XMLSchema> ">
>> <import namespace="mytestnamespace"/>
>> <complexType name="SomeType">
>> <sequence>
>> <element name="Blah" type="xsd:string"/>
>> </sequence>
>> </complexType>
>> </schema>
>> </wsdl:types>
>> <wsdl:message name="Request">
>> <wsdl:part element="ns1:request" name="parameters"/>
>> </wsdl:message>
>> <wsdl:message name="Response">
>> <wsdl:part element="ns1:response" name="parameters"/>
>> </wsdl:message>
>> <wsdl:portType name="TestPortType">
>> <wsdl:operation name="DoSomething">
>> <wsdl:input message="ns1:Request" name="Request"/>
>> <wsdl:output message="ns1:Response" name="Response"/>
>> </wsdl:operation>
>> </wsdl:portType>
>> <wsdl:binding name="TestSoapBinding" type="ns1:TestPortType">
>> <wsdlsoap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"/
>> <BLOCKED::http://schemas.xmlsoap.org/soap/http"/> >
>> <wsdl:operation name="DoSomething">
>> <wsdlsoap:operation soapAction=""/>
>> <wsdl:input name="Request">
>> <wsdlsoap:body use="literal"/>
>> </wsdl:input>
>> <wsdl:output name="Response">
>> <wsdlsoap:body use="literal"/>
>> </wsdl:output>
>> </wsdl:operation>
>> </wsdl:binding>
>> <wsdl:service name="TestService">
>> <wsdl:port binding="ns1:TestSoapBinding" name="Test">
>> <wsdlsoap:address location="http://localhost/Test"/
>> <BLOCKED::http://localhost/Test"/> >
>> </wsdl:port>
>> </wsdl:service>
>> </wsdl:definitions>
>>
>> If you create a BPEL process that imports this WSDL, Ode will not deploy
>> it.
>>
>> org.apache.ode.bpel.compiler.api.CompilationException: error:
>> [CompilationErrors] Compilation completed with 2 error(s):
>>
>> file:/C:/Documents%20and%20Settings/Administrator/Desktop/apache-tomcat-
>> 6.0.18/webapps/ode/WEB-INF/processes/test/imports/Test.wsdl:0: error:
>> [SchemaError] Error in schema processing: sch-props-correct.2: A schema
>> cannot contain two global components with the same name; this schema
>> contains two occurrences of 'mytestnamespace,request'.
>>
>> file:/C:/Documents%20and%20Settings/Administrator/Desktop/apache-tomcat-
>> 6.0.18/webapps/ode/WEB-INF/processes/test/imports/Test.wsdl:0: error:
>> [SchemaError] Error in schema processing: sch-props-correct.2: A schema
>> cannot contain two global components with the same name; this schema
>> contains two occurrences of 'myothertestnamespace,SomeType'.
>> at
>> org.apache.ode.bpel.compiler.BpelCompiler.compile(BpelCompiler.java:752)
>> at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:263)
>> at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:333)
>> at
>> org.apache.ode.store.DeploymentUnitDir$5.run(DeploymentUnitDir.java:176)
>> at org.apache.ode.utils.InternPool.runBlock(InternPool.java:57)
>> at
>> org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:17
>> 3)
>> at
>> org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:13
>> 7)
>> at
>> org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:176)
>> ... 3 more
>>
>> Am I missing something here? Should I write this up?
>>
>
> This looks like a namespace bug. Can you create an issue for it?
>
Ooops sorry, just noticed you created one already :)
>
> Thanks,
> Matthieu
>
>
>>
>> Thanks.
>> -Jon
>>
>>
>>
>
Re: CompilationException for certain WSDLs
Posted by Matthieu Riou <ma...@gmail.com>.
On Fri, May 1, 2009 at 2:19 PM, Jonathan Coogan <
Jonathan.Coogan@attachmate.com> wrote:
> Hi. I've noticed that Ode 1.X will throw a CompilationException for
> BPEL processes that import certain types of WSDLs. These same
> processes/WSDLs work fine in Ode 1.2.
>
> I think it has something to do with local schema imports. Take this
> WSDL, for example.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="mytestnamespace"
> xmlns:ns1="mytestnamespace" xmlns:ns2="myothertestnamespace"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/
> <BLOCKED::http://schemas.xmlsoap.org/wsdl/> "
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/
> <BLOCKED::http://schemas.xmlsoap.org/wsdl/soap/> "
> xmlns:xsd="http://www.w3.org/2001/XMLSchema
> <BLOCKED::http://www.w3.org/2001/XMLSchema> ">
> <wsdl:types>
> <schema elementFormDefault="qualified"
> targetNamespace="mytestnamespace"
> xmlns="http://www.w3.org/2001/XMLSchema
> <BLOCKED::http://www.w3.org/2001/XMLSchema> ">
> <import namespace="myothertestnamespace"/>
> <element name="request">
> <complexType>
> <sequence>
> <element name="in" type="xsd:int"/>
> </sequence>
> </complexType>
> </element>
> <element name="response">
> <complexType>
> <sequence>
> <element name="out" type="ns2:SomeType"/>
> </sequence>
> </complexType>
> </element>
> </schema>
> <schema elementFormDefault="qualified"
> targetNamespace="myothertestnamespace"
> xmlns="http://www.w3.org/2001/XMLSchema
> <BLOCKED::http://www.w3.org/2001/XMLSchema> ">
> <import namespace="mytestnamespace"/>
> <complexType name="SomeType">
> <sequence>
> <element name="Blah" type="xsd:string"/>
> </sequence>
> </complexType>
> </schema>
> </wsdl:types>
> <wsdl:message name="Request">
> <wsdl:part element="ns1:request" name="parameters"/>
> </wsdl:message>
> <wsdl:message name="Response">
> <wsdl:part element="ns1:response" name="parameters"/>
> </wsdl:message>
> <wsdl:portType name="TestPortType">
> <wsdl:operation name="DoSomething">
> <wsdl:input message="ns1:Request" name="Request"/>
> <wsdl:output message="ns1:Response" name="Response"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="TestSoapBinding" type="ns1:TestPortType">
> <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/
> <BLOCKED::http://schemas.xmlsoap.org/soap/http"/> >
> <wsdl:operation name="DoSomething">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="Request">
> <wsdlsoap:body use="literal"/>
> </wsdl:input>
> <wsdl:output name="Response">
> <wsdlsoap:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="TestService">
> <wsdl:port binding="ns1:TestSoapBinding" name="Test">
> <wsdlsoap:address location="http://localhost/Test"/
> <BLOCKED::http://localhost/Test"/> >
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
> If you create a BPEL process that imports this WSDL, Ode will not deploy
> it.
>
> org.apache.ode.bpel.compiler.api.CompilationException: error:
> [CompilationErrors] Compilation completed with 2 error(s):
>
> file:/C:/Documents%20and%20Settings/Administrator/Desktop/apache-tomcat-
> 6.0.18/webapps/ode/WEB-INF/processes/test/imports/Test.wsdl:0: error:
> [SchemaError] Error in schema processing: sch-props-correct.2: A schema
> cannot contain two global components with the same name; this schema
> contains two occurrences of 'mytestnamespace,request'.
>
> file:/C:/Documents%20and%20Settings/Administrator/Desktop/apache-tomcat-
> 6.0.18/webapps/ode/WEB-INF/processes/test/imports/Test.wsdl:0: error:
> [SchemaError] Error in schema processing: sch-props-correct.2: A schema
> cannot contain two global components with the same name; this schema
> contains two occurrences of 'myothertestnamespace,SomeType'.
> at
> org.apache.ode.bpel.compiler.BpelCompiler.compile(BpelCompiler.java:752)
> at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:263)
> at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:333)
> at
> org.apache.ode.store.DeploymentUnitDir$5.run(DeploymentUnitDir.java:176)
> at org.apache.ode.utils.InternPool.runBlock(InternPool.java:57)
> at
> org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:17
> 3)
> at
> org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:13
> 7)
> at
> org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:176)
> ... 3 more
>
> Am I missing something here? Should I write this up?
>
This looks like a namespace bug. Can you create an issue for it?
Thanks,
Matthieu
>
> Thanks.
> -Jon
>
>
>
RE: CompilationException for certain WSDLs
Posted by Jonathan Coogan <Jo...@Attachmate.com>.
Looks like the text of the WSDL got corrupted in my first email. Trying
again...
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="mytestnamespace"
xmlns:ns1="mytestnamespace" xmlns:ns2="myothertestnamespace"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="mytestnamespace"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="myothertestnamespace"/>
<element name="request">
<complexType>
<sequence>
<element name="in" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="response">
<complexType>
<sequence>
<element name="out" type="ns2:SomeType"/>
</sequence>
</complexType>
</element>
</schema>
<schema elementFormDefault="qualified"
targetNamespace="myothertestnamespace"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="mytestnamespace"/>
<complexType name="SomeType">
<sequence>
<element name="Blah" type="xsd:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="Request">
<wsdl:part element="ns1:request" name="parameters"/>
</wsdl:message>
<wsdl:message name="Response">
<wsdl:part element="ns1:response" name="parameters"/>
</wsdl:message>
<wsdl:portType name="TestPortType">
<wsdl:operation name="DoSomething">
<wsdl:input message="ns1:Request" name="Request"/>
<wsdl:output message="ns1:Response" name="Response"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TestSoapBinding" type="ns1:TestPortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="DoSomething">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="Request">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="Response">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TestService">
<wsdl:port binding="ns1:TestSoapBinding" name="Test">
<wsdlsoap:address location="http://localhost/Test"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
________________________________
From: Jonathan Coogan
Sent: Friday, May 01, 2009 2:19 PM
To: user@ode.apache.org
Subject: CompilationException for certain WSDLs
Hi. I've noticed that Ode 1.X will throw a CompilationException for
BPEL processes that import certain types of WSDLs. These same
processes/WSDLs work fine in Ode 1.2.
I think it has something to do with local schema imports. Take this
WSDL, for example.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="mytestnamespace"
xmlns:ns1="mytestnamespace" xmlns:ns2="myothertestnamespace"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/
<BLOCKED::http://schemas.xmlsoap.org/wsdl/> "
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/
<BLOCKED::http://schemas.xmlsoap.org/wsdl/soap/> "
xmlns:xsd="http://www.w3.org/2001/XMLSchema
<BLOCKED::http://www.w3.org/2001/XMLSchema> ">
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="mytestnamespace"
xmlns="http://www.w3.org/2001/XMLSchema
<BLOCKED::http://www.w3.org/2001/XMLSchema> ">
<import namespace="myothertestnamespace"/>
<element name="request">
<complexType>
<sequence>
<element name="in" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="response">
<complexType>
<sequence>
<element name="out" type="ns2:SomeType"/>
</sequence>
</complexType>
</element>
</schema>
<schema elementFormDefault="qualified"
targetNamespace="myothertestnamespace"
xmlns="http://www.w3.org/2001/XMLSchema
<BLOCKED::http://www.w3.org/2001/XMLSchema> ">
<import namespace="mytestnamespace"/>
<complexType name="SomeType">
<sequence>
<element name="Blah" type="xsd:string"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="Request">
<wsdl:part element="ns1:request" name="parameters"/>
</wsdl:message>
<wsdl:message name="Response">
<wsdl:part element="ns1:response" name="parameters"/>
</wsdl:message>
<wsdl:portType name="TestPortType">
<wsdl:operation name="DoSomething">
<wsdl:input message="ns1:Request" name="Request"/>
<wsdl:output message="ns1:Response" name="Response"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TestSoapBinding" type="ns1:TestPortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/
<BLOCKED::http://schemas.xmlsoap.org/soap/http"/> >
<wsdl:operation name="DoSomething">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="Request">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="Response">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TestService">
<wsdl:port binding="ns1:TestSoapBinding" name="Test">
<wsdlsoap:address location="http://localhost/Test"/
<BLOCKED::http://localhost/Test"/> >
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
If you create a BPEL process that imports this WSDL, Ode will not deploy
it.
org.apache.ode.bpel.compiler.api.CompilationException: error:
[CompilationErrors] Compilation completed with 2 error(s):
file:/C:/Documents%20and%20Settings/Administrator/Desktop/apache-tomcat-
6.0.18/webapps/ode/WEB-INF/processes/test/imports/Test.wsdl:0: error:
[SchemaError] Error in schema processing: sch-props-correct.2: A schema
cannot contain two global components with the same name; this schema
contains two occurrences of 'mytestnamespace,request'.
file:/C:/Documents%20and%20Settings/Administrator/Desktop/apache-tomcat-
6.0.18/webapps/ode/WEB-INF/processes/test/imports/Test.wsdl:0: error:
[SchemaError] Error in schema processing: sch-props-correct.2: A schema
cannot contain two global components with the same name; this schema
contains two occurrences of 'myothertestnamespace,SomeType'.
at
org.apache.ode.bpel.compiler.BpelCompiler.compile(BpelCompiler.java:752)
at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:263)
at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:333)
at
org.apache.ode.store.DeploymentUnitDir$5.run(DeploymentUnitDir.java:176)
at org.apache.ode.utils.InternPool.runBlock(InternPool.java:57)
at
org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:17
3)
at
org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:13
7)
at
org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:176)
... 3 more
Am I missing something here? Should I write this up?
Thanks.
-Jon