On Fri, May 1, 2009 at 2:19 PM, Jonathan Coogan < [email protected]> 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 > > >
