Got a problem deploying a process to ODE 1.1 related to the following scenario:
A bpel file imports a wsdl which contains further imports of another wsdl file. The root wsdl uses xml element types defined in the imported wsdl file. ------------root wsdl file------------------------------------------- <?xml version="1.0"?> <definitions xmlns:tns="http://sopera.org/process/HelloLibrary" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:svn="http://types.sopware.org/demos/Library/ProcessCommon/1.0" targetNamespace="http://sopera.org/process/HelloLibrary" name="HelloLibraryProcess"> <import namespace="http://types.sopware.org/demos/Library/ProcessCommon/1.0" location="LibraryCommon.wsdl"/> <types> <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://sopera.org/process/HelloLibrary" xmlns="http://www.w3.org/2001/XMLSchema"> ... -------------------------------------------------------------- Deploying the process I get the following error message: -------------------------------------------------------------------------------- file:/D:/Tomcat55/webapps/ode/WEB-INF/processes/HelloLibraryProcess/HelloLibraryProcess.wsdl:0: error: [SchemaEr ror] Error in schema processing: src-resolve.4.2: Error resolving component 'svn:IDType'. It was detected that 'svn:IDTy pe' is in namespace 'http://types.sopware.org/demos/Library/ProcessCommon/1.0', but components from this namespace are n ot referenceable from schema document 'file:/D:/Tomcat55/webapps/ode/WEB-INF/processes/HelloLibraryProcess/HelloLibraryP rocess.wsdl'. If this is the incorrect namespace, perhaps the prefix of 'svn:IDType' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 'file:/D:/Tomcat55/webapps/ode/WEB-INF/processes /HelloLibraryProcess/HelloLibraryProcess.wsdl'. at org.apache.ode.bpel.compiler.BpelCompiler.compile(BpelCompiler.java:726) at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:260) at org.apache.ode.bpel.compiler.BpelC.compile(BpelC.java:330) at org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:161) at org.apache.ode.store.DeploymentUnitDir.compile(DeploymentUnitDir.java:125) at org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:165) ------------------------------------------------------------ After some debugging I tracked down the source of the problem, in org.apache.xerces.impl.xs.traversers.XSDHandler the routine currSchemaInfo.addAllowedNS(schemaNamespace); is only called for import child nodes of the schema and not for import child nodes of the wsdl definition root. --------------------------DEBUG CALL STACK-------------------------------- XSDHandler.constructTrees(Element, String, XSDDescription) line: 815 XSDHandler.parseSchema(XMLInputSource, XSDDescription, Hashtable) line: 559 XMLSchemaLoader.loadSchema(XSDDescription, XMLInputSource, Hashtable) line: 554 XMLSchemaLoader.loadGrammar(XMLInputSource) line: 521 XMLSchemaLoader.load(LSInput) line: 1055 XSUtils.captureSchema(LSInput, XMLEntityResolver) line: 120 XSUtils.captureSchema(URI, String, XMLEntityResolver) line: 88 WSDLRegistry.captureSchemas(Definition, ResourceFinder, URI) line: 206 WSDLRegistry.addDefinition(Definition4BPEL, ResourceFinder, URI) line: 141 BpelCompiler20(BpelCompiler).addWsdlImport(URI, URI, SourceLocation) line: 191 BpelCompiler20(BpelCompiler).compile(URI, Import) line: 803 BpelCompiler20(BpelCompiler).compile(Process, ResourceFinder) line: 655 BpelC.compile(Process, String) line: 260 BpelC.compile(File) line: 330 DeploymentUnitDir.compile(File) line: 161 DeploymentUnitDir.compile() line: 125 ProcessStoreImpl.deploy(File) line: 165 DeploymentPoller.check() line: 144 DeploymentPoller.access$300(DeploymentPoller) line: 55 DeploymentPoller$PollingThread.run() line: 188 --------------------------------------------------------- So what should I do? Do I have to use external .xsd files referenced from all the wsdl files - an import at the <schema attributeFormDefault="unqualified" elementFormDefault="qualified" level? __________________________________ Kennt man wirklich jeden über 3 Ecken? Die Antworten gibt's bei Yahoo! Clever. www.yahoo.de/clever
