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


Reply via email to