I can't get schema resolution from a jar-file (using jax-ws-catalog as per
4.4 Catalog Facility in the JAX-WS 2.1 spec) to work 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.
Shouldn't this be possible?
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