wsdl2java and jax-ws-catalog: failing to resolve schemas included with 
xsd:include in jar-file
----------------------------------------------------------------------------------------------

                 Key: CXF-2571
                 URL: https://issues.apache.org/jira/browse/CXF-2571
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.2.5, 2.1.8
         Environment: Apache Maven 2.2.1
Java version: 1.5.0_21
OS name: "windows xp"
            Reporter: HÃ¥kan Dahl


cxf-codegen-plugin/wsdl2java (2.1.8, 2.2.5)

Refer user-list thread:
http://old.nabble.com/jax-ws-catalog-and-resolving-schemas-in-jars-that-do-xsd%3Ainclude-td26590812.html

Schema resolution from a jar-file (using jax-ws-catalog as per 4.4 Catalog 
Facility in the JAX-WS 2.1 spec) fails when:

* The referenced schema in a jar makes xsd:include on another schema in the
jar (all schemas in a jar share the same namespace).

Stacktrace below for CXF 2.1.8 below. CXF 2.2.5 also fails but with a 
NullPointerException.

Note: xsd:import works but requires imported schema to be in another
namespace.


Projects look like:

common-types-domain1
   META-INF/jax-ws-catalog.xml
   schemas/domain1/domain1-schema1.xsd
   schemas/domain1/domain1-schema2.xsd

wsdl-project-1
   src\main\resources\schemas\GetX.xsd
   src\main\resources\schemas\GetXService.wsdl

where the GetXService.wsdl imports GetX.xsd which imports
domain1-schema2.xsd like this:


GetX.xsd:

   <xsd:import namespace="http://www.example.org/schemas/domain1";
       schemaLocation="
http://www.example.org/schemas/domain1/domain1-schema2.xsd"/>

domain1-schema2.xsd:

   <xsd:include schemaLocation="domain1-schema1.xsd"/>

common-types-domain1/META-INF/jax-ws-catalog.xml:

   <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
prefer="system">
     <system systemId="
http://www.example.org/schemas/domain1/domain1-schema1.xsd";
         uri="classpath:schemas/domain1/domain1-schema1.xsd"/>
     <system systemId="
http://www.example.org/schemas/domain1/domain1-schema2.xsd";
         uri="classpath:schemas/domain1/domain1-schema2.xsd"/>
   </catalog>

results in:

Caused by: org.apache.cxf.tools.common.ToolException: Thrown by JAXB :
http://www.example.org/schemas/domain1/domain1-schema1.xsd
   at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBBindErrorListener.error(JAXBBindErrorListener.java:34)
   at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.error(SchemaCompilerImpl.java:285)
   at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:90)
   at
com.sun.tools.xjc.reader.internalizer.DOMForest.parse(DOMForest.java:402)
   at
com.sun.tools.xjc.reader.internalizer.DOMForest.parse(DOMForest.java:301)
   at
com.sun.tools.xjc.reader.internalizer.AbstractReferenceFinderImpl.startElement(AbstractReferenceFinderImpl.java:95)
   at
org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527)
   at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:240)
   at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
   at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
   at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:123)
   at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.parseSchema(SchemaCompilerImpl.java:135)
   at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.addSchemas(JAXBDataBinding.java:253)
   at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:196)
   at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:588)
   at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:239)
   at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:130)
   at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:283)
   at
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:83)
   at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:103)
   at
org.apache.cxf.maven_plugin.WSDL2JavaMojo.processWsdl(WSDL2JavaMojo.java:337)
   ... 20 more
Caused by: java.io.FileNotFoundException:
http://www.example.org/schemas/domain1/domain1-schema1.xsd
   ... 39 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to