ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dietmar Wolz <drdietmarw...@yahoo.de>
Subject wsdl import problem
Date Wed, 17 Oct 2007 13:42:56 GMT
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

Mime
View raw message