Importing xsd-s transitively results in file not found excpetion
----------------------------------------------------------------
Key: CXF-3718
URL: https://issues.apache.org/jira/browse/CXF-3718
Project: CXF
Issue Type: Bug
Environment: Equinox 3.6.0, CXF 2.3.2 and 2.4.1 I din't try other
versions.
Reporter: Tamás Pauló
I have a bundle which conatins a wsdl file, and multiple xsd files under
META-INF/wsdl.
The wsdl imports an xsd file which in turn import another one and this imports
multiple other ones.
Like:
x.wsdl imports x.xsd
x.xsd imports x0.xsd
x0.xsd imports x1...n.xsd
All the imports are relative like:
schemaLocation=x.xsd"
When calling
bus.getExtension(WSDLManager.class).getDefinition(wsdlUrl);
where wsdlUrl is an URL object with the form like
bundleresource://6.fwk22992473:6/META-INF/wsdl/x.wsdl
I get the following exception:
javax.wsdl.WSDLException: WSDLException (at
/wsdl:definitions/wsdl:types/xsd:schema/xsd:schema/xsd:s
chema): faultCode=PARSER_ERROR: Problem parsing 'x1.xsd'.:
java.io.FileNotFoundException: #CURRENT WORKING DIR#/x1.xsd
(The system cannot find the file specified)
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2111)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:808)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:842)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:842)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(WSDLReaderImpl.java:632)
at com.ibm.wsdl.xml.WSDLReaderImpl.parseTypes(WSDLReaderImpl.java:594)
at
com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(WSDLReaderImpl.java:305)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2265)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2251)
at
org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:237)
at
org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:168)
...
Caused by: java.io.FileNotFoundException: #CURRENT WORKING DIR#/x1.xsd (The
system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileInputStream.<init>(FileInputStream.java:66)
at
sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
at
sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653)
at
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:772)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235)
at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2101)
... 16 common frames omitted
My best guess is something is wrong with CXF's reosurce locators, or maybe the
Equinox is buggy?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira